php http_build_query问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php http_build_query问题相关的知识,希望对你有一定的参考价值。

$a=array (
'method' => 'test',
'times' => '2013-06-15 19:46:23',
);
echo http_build_query($a);//结果为啥没法获取times参数,变成了x

http_build_query($a); // method=test×=2013-06-15+19%3A46%3A23
由于 参数之间会用 & 分隔,而恰好 × 是 × 的实体名称,所以显示出来就是 × 了。

如果你直接看页面源代码,是正确的,就是显示出来不一样。
参考技术A

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = php_QUERY_RFC1738 ]]] )

使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。

参数

    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)。

    返回值

    返回一个 URL 编码后的字符串。

这里有一篇文章有关http_build_query 编码,空格问题的详细说明和解决办法:

http_build_query 空格

希望可以帮助到您!

PHP使用http_build_query()构造URL字符串的方法(可将POST参数组转换拼接成GET请求链接)

http_build_query

(PHP 5, PHP 7)

http_build_query — 生成 URL-encode 之后的请求字符串

 

 1 <?php
 2 $data = array(
 3     ‘foo‘=>‘bar‘,
 4     ‘baz‘=>‘boom‘,
 5     ‘cow‘=>‘milk‘,
 6     ‘php‘=>‘hypertext processor‘
 7     );
 8 
 9 echo http_build_query($data);
10 /* 
11  * 输出:foo=bar&baz=boom&cow=milk&php=hypertext+processor
12 */
13 ?>
14 例子 2. http_build_query() 使用数字下标的元素
15 
16 <?php
17 $data = array(‘foo‘, ‘bar‘, ‘baz‘, ‘boom‘, ‘cow‘ => ‘milk‘, ‘php‘ =>‘hypertext processor‘);
18 
19 echo http_build_query($data);
20 /* 
21  * 输出:0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
22 */
23 
24 echo http_build_query($data, ‘myvar_‘);
25 /* 
26  * 输出:myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
27 */
28 ?>

 

以上是关于php http_build_query问题的主要内容,如果未能解决你的问题,请参考以下文章

PHP使用http_build_query()构造URL字符串的方法(可将POST参数组转换拼接成GET请求链接)

php http_build_query stream_context_create post请求

PHP使用http_build_query()构造URL字符串的方法(可将POST参数组转换拼接成GET请求链接)

http_build_query用法

http_build_query()函数使用方法

php使用http_build_query,parse_url,parse_str创建与解析url详解