php url查询无索引的嵌套数组
发布时间:2020-12-13 17:34:25 所属栏目:PHP教程 来源:网络整理
导读:我正在使用第三方API来接收必须编码的几个参数: text[]=Hello%20Worldtext[]=How%20are%20you?html[]=pJust%20fine,%20thank%20you/p 您可以看到这个API可以接受文本的多个参数,也可以接受HTML(不在示例调用中). 我使用http_build_query来正确构建其他API的
我正在使用第三方API来接收必须编码的几个参数:
text[]=Hello%20World&text[]=How%20are%20you?&html[]=<p>Just%20fine,%20thank%20you</p> 您可以看到这个API可以接受文本的多个参数,也可以接受HTML(不在示例调用中). 我使用http_build_query来正确构建其他API的查询字符串 $params['text'][] = 'Hello World'; $params['text'][] = 'How are you?'; $params['html'][] = '<p>Just fine,thank you</p>'; $http_query = http_build_query($params); 这种方法的问题是它将使用数字索引构建查询字符串: text [0] = Hello World& text [1] =你好吗?& html [0] =< p>好的,谢谢< / p> 不幸的是,我正在使用的API不喜欢数字索引并失败. 有没有PHP函数/类方法可以帮助我快速构建一个这样的查询? 谢谢
似乎没有办法通过http_build_query来做到这一点.抱歉.在docs页面上,有人说:
function cr_post($a,$b=0,$c=0){ if (!is_array($a)) return false; foreach ((array)$a as $k=>$v){ if ($c) $k=$b."[]"; elseif (is_int($k)) $k=$b.$k; if (is_array($v)||is_object($v)) { $r[]=cr_post($v,$k,1);continue; } $r[]=urlencode($k)."=" .urlencode($v); } return implode("&",$r); } $params['text'][] = 'Hello World'; $params['text'][] = 'How are you?'; $params['html'][] = '<p>Just fine,thank you</p>'; $str = cr_post($params); echo $str; 我没有测试过.如果不行,那么你将不得不自己滚动.也许你可以发布一个github要点,以便其他人可以使用它! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |