📜  PHP | http_build_query()函数(1)

📅  最后修改于: 2023-12-03 15:33:33.055000             🧑  作者: Mango

PHP | http_build_query()函数

在 PHP 中,通过使用 http_build_query() 函数,可以将数组或对象转换为 URL 编码的字符串。

语法
string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
参数
  • query_data(必须):要转换的数组或对象。
  • numeric_prefix(可选):如果设置了此参数并且为非空字符串,则在每个参数键名前面添加该前缀以确保唯一性。
  • arg_separator(可选):用于将查询参数连接在一起的字符串。
  • enc_type(可选):请求参数的 URL 编码类型。默认为 PHP_QUERY_RFC1738
返回值

返回一个 URL 编码的字符串,其中键和值使用等号 (=) 分隔,每个参数之间使用 & 字符分隔。

例子
例子一:将数组转换为 URL 编码的字符串
$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);

echo http_build_query($data);

输出:

name=John&age=30&city=New+York
例子二:将对象转换为 URL 编码的字符串
class Person {
    public $name = 'John';
    public $age = 30;
    public $city = 'New York';
}

$person = new Person();

echo http_build_query($person);

输出:

name=John&age=30&city=New+York
例子三:使用 numeric_prefix 并指定 arg_separator
$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);

echo http_build_query($data, 'data_', '|');

输出:

data_name=John|data_age=30|data_city=New+York
例子四:使用 enc_type 指定 URL 编码类型
$data = array(
    'name' => 'John Smith',
    'email' => 'john@example.com'
);

echo http_build_query($data, '', '', PHP_QUERY_RFC3986);

输出:

name=John%20Smith&email=john%40example.com
总结

http_build_query() 函数是将数组或对象转换为 URL 编码的字符串的有用工具。使用此函数有助于轻松地将数据发送到服务器,并确保数据被正确解析。通过指定 numeric_prefixarg_separatorenc_type 等参数,可以进一步自定义生成的字符串。