PHP中GET方法URL传值特殊字符的解决方法
博客好久没动,每次看到博客标签那未启用三个字就刺眼,就决定把它整掉。本来觉得很简单的,用GET传一下值就OK了,可是总是会出问题。
有的类别的文章就会查到,有的就查不到,最后发现,像Web前端、随笔这样的标签就能查到,而PHP&MySQL和VC++这样的标签就不显示结果,我把GET到的内容echo了一下,发现VC++变成VC 了(VC后有空格),PHP&MySQL只剩下PHP了,看样子是PHP在传值时把这些特殊字符都屏蔽了。
开始百度,得到一种方法,传值之前先urlencode一下,接收的时候再urldecode一下,这样的话只有PHP&MySQL凑效了,VC++输出还是VC。。。
使用如下这样一个函数,将+、&、#等字符替换,如下:
function handleSpecailTag($str) {
$attachment_path = preg_replace("/+/",'%2B',$str);
$attachment_path = preg_replace("/#/",'%23',$attachment_path);
$attachment_path = preg_replace("/&/",'%26',$attachment_path);
return $attachment_path;
}
同样,传值之前需要urlencode,然后接收的时候将处理后的结果在urldecode一下,就能正常传值了,在博客里实验一下吧。
页:
[1]