php http_build_str(),PHP的parse_str() 函数 和http_build_query()函数

query_data

可以是数组或包含属性的对象。

一个

query_data 数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。

如果

query_data 是一个对象,只有 public 的属性会加入结果。

numeric_prefix

如果在基础数组中使用了数字下标同时给出了该参数,此参数值将会作为基础数组中的数字下标元素的前缀。

这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。

arg_separator

除非指定并使用了这个参数,否则会用 arg_separator.output 来分隔参数。

enc_type

默认使用

PHP_QUERY_RFC1738。

如果

enc_type 是

PHP_QUERY_RFC1738,则编码将会以 » RFC 1738 标准和

application/x-www-form-urlencoded 媒体类型进行编码,空格会被编码成加号(

+)。

如果

enc_type 是

PHP_QUERY_RFC3986,将根据 » RFC 3986 编码,空格会被百分号编码(

%20)。

代码演示

$data = array('foo'=>'bar',

'baz'=>'boom',

'cow'=>'milk',

'php'=>'hypertext processor');

echo http_build_query($data);

输出:

foo=bar&baz=boom&cow=milk&php=hypertext+processor

?>

$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');

echo http_build_query($data);

输出:

0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor

echo http_build_query($data, 'myvar_');

myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor

?>

$data = array('user'=>array('name'=>'Bob Smith',

'age'=>47,

'sex'=>'M',

'dob'=>'5/12/1956'),

'pastimes'=>array('golf', 'opera', 'poker', 'rap'),

'children'=>array('bobby'=>array('age'=>12,

'sex'=>'M'),

'sally'=>array('age'=>8,

'sex'=>'F')),

'CEO');

echo http_build_query($data, 'flags_');

输出:(为了可读性对其进行了折行)

user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956&

pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&

children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&

children[sally][sex]=F&flags_0=CEO

注意:只有基础数组中的数字下标元素“CEO”才获取了前缀,其它数字下标元素(如

pastimes 下的元素)则不需要为了合法的变量名而加上前缀。

?>

class myClass {

var $foo;

var $baz;

function myClass() {

$this->foo = 'bar';

$this->baz = 'boom';

}

}

$data = new myClass();

echo http_build_query($data);

输出:

foo=bar&baz=boom

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`http_build_url` 是 PHP 中的一个函数,用于构建 URL。 它的语法如下: ```php string http_build_url ( string $url [, mixed $parts [, int $flags = HTTP_URL_REPLACE [, array &$new_url ]]] ) ``` 参数说明: - `$url`:必需,要被处理的 URL,可以是绝对路径或相对路径。 - `$parts`:可选,一个包含 URL 组件的关联数组(例如 `parse_url` 函数返回的数组)。 - `$flags`:可选,用于控制 URL 的重建方式,有以下几个选项: - `HTTP_URL_REPLACE`:替换所有与新 URL 相应的部分(默认值)。 - `HTTP_URL_JOIN_PATH`:将新的路径部分添加到原来的路径部分之后。 - `HTTP_URL_JOIN_QUERY`:将新的查询字符串添加到原来的查询字符串之后。 - `HTTP_URL_STRIP_USER`:从 URL 中删除用户名部分。 - `HTTP_URL_STRIP_PASS`:从 URL 中删除密码部分。 - `HTTP_URL_STRIP_AUTH`:从 URL 中删除用户名和密码部分。 - `HTTP_URL_STRIP_PORT`:从 URL 中删除端口号部分。 - `HTTP_URL_STRIP_PATH`:从 URL 中删除路径部分。 - `HTTP_URL_STRIP_QUERY`:从 URL 中删除查询字符串部分。 - `HTTP_URL_STRIP_FRAGMENT`:从 URL 中删除片段标识符部分。 - `$new_url`:可选,如果设置了此参数,则函数将返回一个新的 URL 字符串,并将其存储在 `$new_url` 变量中。 示例: ```php $url = "https://www.example.com/path/to/file.php?foo=bar#baz"; $parts = parse_url($url); $parts["query"] = "new=parameter"; $new_url = http_build_url($url, $parts); echo $new_url; // 输出: https://www.example.com/path/to/file.php?new=parameter#baz ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值