$_GET方法踩坑

背景

写代码时,遇到一个奇怪的问题:小程序卡券解码接口老是报解码失败,苦寻了一个小时,发现原来是url参数经过thinkphp的I方法被过滤掉,而且涉及到PHP原生的$_GET

原因

I方法底层是原生的$_GET,而$_GET在获取参数时会先用url_decode()处理,而url_decode()会把"+"变成空格,如图所示:

$_GET

url_decode

解决办法

自己写一个把空格替换回“+”的方法

private function convertSapceToPlus($str)
{
    return str_replace(' ','+',trim($str));
}

猜你喜欢

转载自www.cnblogs.com/liangshaoming/p/9005515.html