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:
正常的应该是:
图2:
method=alipay.trade.page.pay¬ify_url=https%3A%2F%2Fhelei112g.github.io%2Fv1%2Fnotify%2Fali
可以看到,第一个method 和 notify_url 拼接的时候,有个乱码
调试了好久,为什么出乱码,最后才惊醒,被眼前假象迷惑了
乱码处:¬ 这个字符被浏览器转义了,代表:1中的符号
右击浏览器,查看源码功能,看到真正的字符串是图2
如果方法http_build_query 在代码里用,并且直接用代码地址转向(header())的话,不用浏览器输出功能的话,这个问题,丝毫不受影响,可不用关注,如果一定要在浏览器里,页面显示地址的话,就想办法别让他html转义