在某些PHP配置中,http_build_query将not_var = yes转换为¬_var= yes.为什么?

Her*_*eon 4 php

这段代码:

$query = array(
    "var" => "no",
    "not_var" => "yes",
    "var2" => "maybe"
);
print http_build_query($query);
Run Code Online (Sandbox Code Playgroud)

输出:

var=no¬_var=yes&var2=maybe
Run Code Online (Sandbox Code Playgroud)

这发生在运行PHP 5.3.19的我自己的机器上.我在PHPfiddle上重现了这种行为.它在运行PHP 5.2.11的ideone.com上按预期工作.

为什么会这样?

Rud*_*ser 8

这只是因为你的浏览器编码&not实体,试试这个:

print htmlentities(http_build_query($query));
Run Code Online (Sandbox Code Playgroud)

对于正常使用,它将是绝对正常的.

它在ideonevs 上有所不同的原因PHPFiddle是因为PHPFiddle只是将结果转储到iframe中,并且ideone在实体编码前显示它,以便其他显示不被破坏.