遇到个很奇怪的问题,在获取php $_GET参数时候,加号莫名其妙没掉了。

示例如下:


//链接地址
//url?start_time=2013-11-13+00%3A00%3A00&spider=Baiduspider%2B

echo urldecode($_GET['spider']);//输出Baiduspider 
echo urldecode('Baiduspider%2B');//输出Baiduspider+
echo urldecode($_GET['start_time']);//2013-11-13 00:00:00
echo urldecode('2013-11-13+00%3A00%3A00');//2013-11-13 00:00:00


很明显,Baiduspider后面的加号在urldecode后没掉了。

因为%2B进行一次解码后是“+”,再解码一次则变成了“空格”。

在此mark下这问题,这玩意儿就这么规定的,也没什么特效办法解决,只能平时注意了。