http_build_query用法
封面图
•
2025-10-13
•
PHP
185
0
0
0
`http_build_query()` 是 PHP 中的一个内置函数,用于将数组或对象转换为 URL 查询字符串(即 `key1=value1&key2=value2` 这样的格式)。它常用于构建 GET 请求的参数部分。 --- ## ✅ 基本语法: ```php string http_build_query ( array $data [, string $prefix ] ) ``` - **`$data`**:要转换的数组或对象。 - **`$prefix`**(可选):如果提供,则会在每个键前面加上这个前缀。 --- ## 🔧 示例 ### 1. 简单数组: ```php $data = [ 'name' => 'John', 'age' => 30, 'city' => 'New York' ]; echo http_build_query($data); ``` **输出:** ``` name=John&age=30&city=New%20York ``` > 注意:空格会被编码为 `%20`。 --- ### 2. 使用 `$prefix` 参数: ```php $data = [ 'name' => 'John', 'age' => 30 ]; echo http_build_query($data, 'user_'); ``` **输出:** ``` user_name=John&user_age=30 ``` --- ### 3. 多维数组(嵌套数组): ```php $data = [ 'user' => [ 'name' => 'John', 'age' => 30 ], 'hobbies' => ['reading', 'gaming'] ]; echo http_build_query($data); ``` **输出:** ``` user[name]=John&user[age]=30&hobbies[]=reading&hobbies[]=gaming ``` > 注意:PHP 会自动处理多维数组的结构,生成类似 `user[name]` 的键。 --- ### 4. 对象转换为查询字符串: ```php class User { public $name = 'John'; public $age = 30; } $user = new User(); echo http_build_query($user); ``` **输出:** ``` name=John&age=30 ``` --- ## 🛡️ 注意事项: - **URL 编码**:`http_build_query()` 会自动对值进行 URL 编码(如空格变 `%20`、`+` 变 `%2B` 等),不需要手动使用 `urlencode()`。 - **安全性**:不要直接将用户输入传递给 `http_build_query()`,应确保数据经过验证和清理。 - **PHP 版本**:在 PHP 8.1 之后,`http_build_query()` 的行为略有变化,比如对空值的处理等,建议查看官方文档确认。 --- ## 📚 官方文档参考: [https://www.php.net/manual/zh/function.http-build-query.php](https://www.php.net/manual/zh/function.http-build-query.php) --- 如果你有具体的使用场景(例如构建 API 请求、GET 参数等),可以告诉我,我可以给出更详细的示例。
上一篇:
用Curl伪装成百度蜘蛛替代file_get_contents批量获取网页/图片
下一篇:
http_build_query 生成 url-encoded 之后的请求字符串
标题录入,一次不能超过6条
返回顶部
留言
留言
评论