http_build_query 生成 url-encoded 之后的请求字符串
封面图
•
2025-12-29
•
PHP
218
0
0
0
`http_build_query` 是 PHP 中的一个函数,用于将数组或对象转换为 **URL 编码的查询字符串**(即 `application/x-www-form-urlencoded` 格式),常用于构造 URL 的查询参数部分。 --- ### ✅ 语法: ```php string http_build_query ( array $data [, string $numeric_prefix = null [, string $separator = null [, int $encoding_type = PHP_QUERY_RFC3986 ]]] ) ``` --- ### 📌 参数说明: - `$data`: 要编码的数组或对象。 - `$numeric_prefix`: 如果键是数字,则在键前添加的前缀(可选)。 - `$separator`: 使用的分隔符(默认是 `&`)。 - `$encoding_type`: 编码方式(默认是 `PHP_QUERY_RFC3986`,也可以使用 `PHP_QUERY_RFC1738`)。 --- ### ✅ 示例: #### 示例 1:简单数组 ```php $data = [ 'name' => 'John', 'age' => 30, 'city' => 'New York' ]; echo http_build_query($data); ``` **输出:** ``` name=John&age=30&city=New+York ``` > 注意:空格会被编码为 `+` 或 `%20`,取决于编码类型。 --- #### 示例 2:带数字键 ```php $data = [ 0 => 'apple', 1 => 'banana', 2 => 'cherry' ]; echo http_build_query($data, 'num_'); ``` **输出:** ``` num_0=apple&num_1=banana&num_2=cherry ``` --- #### 示例 3:嵌套数组 ```php $data = [ 'user' => [ 'name' => 'Alice', 'age' => 25 ], 'hobbies' => ['reading', 'swimming'] ]; echo http_build_query($data); ``` **输出:** ``` user[name]=Alice&user[age]=25&hobbies%5B0%5D=reading&hobbies%5B1%5D=swimming ``` > 这个格式通常用于表单提交时的结构化数据。 --- ### 📝 注意事项: - 默认使用 `&` 分隔符和 `+` 表示空格。 - 可以通过设置 `$encoding_type` 来控制空格是否被编码为 `%20`(`PHP_QUERY_RFC3986`)或 `+`(`PHP_QUERY_RFC1738`)。 - 适用于构建 GET 请求的查询字符串。 --- ### ✅ 常见用途: ```php $url = "https://example.com/api?" . http_build_query([ 'page' => 1, 'search' => 'PHP tutorial' ]); ``` **结果:** ``` https://example.com/api?page=1&search=PHP+tutorial ``` --- 如果你有具体的数组结构,我可以帮你生成对应的 `http_build_query` 结果。欢迎提供具体例子!
上一篇:
http_build_query用法
下一篇:
什么是SPU、SKU、ARPU
标题录入,一次不能超过6条
留言
评论