我正在使用一个第三方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%20World&text[1]=How%20are%20you?&html[0]=<p>Just%20fine,%20thank%20you</p>
不幸的是,我正在使用的API不喜欢数字索引并失败了。
是否有任何PHP函数/类方法可以帮助我快速构建这样的查询?
谢谢
$httpQuery = http_build_query($params, null, '&'); $httpQueryDecoded = urldecode($httpQuery); $requestDataFormatted = urlencode(preg_replace('#\[[\d]+\]#', '[]', $httpQueryDecoded));
- Matt