使用params时出现http_build_query错误

时间:2014-03-07 09:02:07

标签: php

$post_data = array(
    'model' => 'player',
    'action' => 'buyItem',
    'params' => array('item_id'=>100, 'count'=>100)
);
$postData = http_build_query($post_data);
echo $postData;


$post_data = array(
    'model' => 'player',
    'action' => 'buyItem',
    'arams' => array('item_id'=>100, 'count'=>100)
);
$postData = http_build_query($post_data);
echo $postData;

第一个输出是model = player& action =buyItem¶ms%5Bitem_id%5D =100¶ms%5Bcount%5D = 100。 但第二个输出是正确的。 那为什么我不能用params作为关键? 谢谢!

1 个答案:

答案 0 :(得分:2)

我可以重现这一点。

似乎params正在转换为&params,其被解释为&para(¶ - 段落)+ ms

您的解决方案是拨打params其他内容,或者执行:

echo htmlspecialchars($postData);

<强>更新

实际上,只有当您尝试回复$postData时才会出现这种情况,如果您将其用作正确显示的网址的一部分。

如果您执行以下操作:

echo "<a href='www.mysite.com?" . $postData . "'>Link</a>";
你会明白我的意思。