http_build_query()函数的作用是使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。
很多项目中的数据对接都是json数据格式进行传递的,如何将一组JSON数据转化为网址参数,进行请求,如:
- 请求参数的传递
$loginParams = '{"phone":"13099439943","currentTimeMillis":"1494466036877","cust_id":"Co1z7hV167Faqkk5WIohVdhaHj+mORib","isNewUser":"0"}';
1.转化json为数组:
$newarr = json_decode($loginParams, true);
2.http_build_query()函数生成字符串
$newurl = http_build_query($newarr);
3.组合字符串,传递参数
echo "https://icbc.hhmidea.com/?" . htmlspecialchars($newurl);
4.完整代码:
$loginParams = '{"phone":"13099439943","currentTimeMillis":"1494466036877","cust_id":"Co1z7hV167Faqkk5WIohVdhaHj+mORib","isNewUser":"0"}';//AES加密登录参数; $newarr = json_decode($loginParams, true); echo "<br>"; $newurl = http_build_query($newarr); echo "https://icbc.hhmidea.com/?" . htmlspecialchars($newurl);
htmlspecialchars()可以避免出现HTML显示的乱码。
- 回传参数的处理
parse_str($newurl, $arr); $newjson = json_encode($arr); echo $newjson;