微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php url查询无索引的嵌套数组

我正在使用第三方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要点,以便其他人可以使用它!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐