Maison >développement back-end >tutoriel php >PHP 使用CURL 传递多维数组问题
现在要写一个API,但是用curl传参数时多维数组的传递有问题
{ $post_data = array( 'auth-userid' => 611510, 'api-key' => 'api', 'domain-name'=>array('domain1','domain2'), 'tlds' => 'com', ); $result=http_build_query($post_data); var_dump($result); }
其实这个问题很简单。
http_build_query ? 生成 URL-encode 之后的请求字符串
产生的是一个url encode 的字符串。里面都是已经给encode 。
你可以使用
$post_data = array( 'auth-userid' => 611510, 'api-key' => 'api', 'domain-name'=>array('domain1','domain2'), 'tlds' => 'com', ); $result=http_build_query($post_data); var_dump($result); var_dump(urldecode($result));
%5B0%5D 是 [] 一对方括号
这是按 php 的规则生成的
如果对方不是 php 则要按 domain-name[] 这个名字访问 domain-name 成员
或者你就把它删掉
$result = str_replace('%5B0%5D', '', http_build_query($post_data));
若对方是 php 的话,就一定不能删了。否则就会少数据了
那还是地址给url encode