URL查询的PHP parse_str返回键名中带有“ amp”的数组键

Ric*_*ell 4 php arrays string parsing

环境:Host(JustHost)上测试站点上的Wordpress(最新),PHP版本5.4.43。

在URL查询上使用parse_str,结果数组返回数组键名amp; keyname。示例代码:

$querystring = "ie=UTF8&qid=1468851514&sr=8-1&keywords=there&tag=sitename-20";
parse_str($querystring, $queryarray);
echo "<pre>";
print_r($queryarray);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)

退货

Array
(
    [ie] => UTF8
    [amp;qid] => 1468851514
    [amp;sr] => 8-1
    [amp;keywords] => there
    [amp;tag] => sitename-20
)
Run Code Online (Sandbox Code Playgroud)

为什么是“放大器;” 在键名中?

这是PHP版本的问题吗(在EasyPHP本地环境中似乎可以正常工作-版本5.4.24,但在托管位置的测试WP服务器上却没有)?还是我再次感到困惑?

小智 6

&'amp; 仅在以HTML / XML数据输出URL时才使用。

您可以尝试使用html_entity_decode()

$querystring = "ie=UTF8&qid=1468851514&sr=8-1&keywords=there&tag=sitename-20";
parse_str(html_entity_decode($querystring), $queryarray);
echo "<pre>";
print_r($queryarray);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)

希望对您有所帮助。