http_build_query — 生成 URL-encode 之后的请求字符串

public function index()

{

$data['method']='alipay.trade.page.pay';

$data['notify_url']='https://helei112g.github.io/v1/notify/ali';

$str = http_build_query($data);

print_r( $str);die;

return 'hello,test';

}

浏览器打印结果

图1:

fbd87b9869e798a894a9bb336857d91a.png

正常的应该是:

图2:

method=alipay.trade.page.pay&notify_url=https%3A%2F%2Fhelei112g.github.io%2Fv1%2Fnotify%2Fali

可以看到,第一个method 和 notify_url 拼接的时候,有个乱码

调试了好久,为什么出乱码,最后才惊醒,被眼前假象迷惑了

乱码处:&not 这个字符被浏览器转义了,代表:1中的符号

右击浏览器,查看源码功能,看到真正的字符串是图2

如果方法http_build_query 在代码里用,并且直接用代码地址转向(header())的话,不用浏览器输出功能的话,这个问题,丝毫不受影响,可不用关注,如果一定要在浏览器里,页面显示地址的话,就想办法别让他html转义

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐