我一直在玩 cURL,并尝试将数组作为 POST 变量发送。我决定使用 http_build_query 按预期传递字符串:
curl_setopt($this->ch, CURLOPT_POSTFIELDS, http_build_query($sendParams));
我有简单的接收端print_r
'ing $_POST,这样我就可以看到正在发送的内容。
但是,我在所有父元素上附加了一个&符号after第一,这是正常的吗?我假设 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);
?>
Returns:
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
首先,在解析查询字符串之前。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)