使用给出的关联(或下标)数组生成一个 url-encoded 请求字符串。参数 可以是数组或包含属性的对象。一个 数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。如果在基础数组中使用了数字下标同时给出了 参数,此参数值将会作为基础数组中的数字下标元素的前缀。这是为了让 或其它 cgi 程序在稍后对数据进行解码时获取合法的变量名。
例子 1. http_build_query() 使用示例
8e3a6248897d32c8dd94374f42f6ba77'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data);
/* 输出:
foo=bar&baz=boom&cow=milk&php=hypertext+processor
*/
?>
例子 2. http_build_query() 使用数字下标的元素
a400baad2b80f08fba6e677770d25c66 '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
*/
?>
例子 3. http_build_query() 使用复杂的数组
<?php $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 下的元素)则不需要为了合法的变量名而加上前缀。 */ ?> 例子 4. http_build_query() 使用对象 <?php 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 */ ?>
相关推荐:
php中数据转换成url的http_build_query函数
http_build_query函数带来的困扰
php http_build_query 实现教程_php教程
以上就是http_build_query的用法详解的详细内容。
