$_GET方法踩坑
背景
写代码时,遇到一个奇怪的问题:小程序卡券解码接口老是报解码失败,苦寻了一个小时,发现原来是url参数经过thinkphp的I方法被过滤掉,而且涉及到PHP原生的$_GET
原因
I方法底层是原生的$_GET,而$_GET在获取参数时会先用url_decode()处理,而url_decode()会把"+"变成空格,如图所示:
解决办法
自己写一个把空格替换回“+”的方法
private function convertSapceToPlus($str)
{
return str_replace(' ','+',trim($str));
}