php – parse_str在元素之前添加&符号?
发布时间:2020-12-13 17:39:07 所属栏目:PHP教程 来源:网络整理
导读:我一直在玩cURL,并试图通过POST变量发送一个数组.我决定使用http_build_query按预期传递字符串: curl_setopt($this-ch,CURLOPT_POSTFIELDS,http_build_query($sendParams)); 我有接收端只需print_r’ing $_POST,所以我可以看到正在发送的内容. 但是,我在第
我一直在玩cURL,并试图通过POST变量发送一个数组.我决定使用http_build_query按预期传递字符串:
curl_setopt($this->ch,CURLOPT_POSTFIELDS,http_build_query($sendParams)); 我有接收端只需print_r’ing $_POST,所以我可以看到正在发送的内容. 但是,我在第一个之后得到一个附加到所有父元素的&符号,这是正常的吗?我假设解析查询字符串时cURL使用parse_str,所以这里是一个超简化的例子,它也导致了&符号: <?php $array = array('foo',array('bar' => array('baz' => array(1,2,3))),'test' => array(2,3,4)); parse_str(http_build_query($array),$vars); print_r($vars); ?> 返回: Array ( [0] => foo [amp;1] => Array ( [bar] => Array ( [baz] => Array ( [0] => 1 [1] => 2 [2] => 3 ) ) ) [amp;test] => Array ( [0] => 2 [1] => 3 [2] => 4 ) ) 解决方法
似乎已经回答了我自己的问题… parse_str被&混淆了,我需要在解析查询字符串之前先运行html_entity_decode.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |