$str = 'foo @+%/'; echo $str; echo "\n"; echo rawurlencode($str); echo "\n"; echo urldecode(rawurlencode($str)); echo "\n"; echo urlencode($str); echo "\n"; echo rawurldecode(urlencode($str)); //结论: //1. rawurlencode() 比 urlencode() 做的编码的部分多,urldecode() 比 rawurldecode() 解码的部分多; //2. rawurlencode() 的结果用urldecode()来解,没有问题,php中对参数的解码看来是用urldecode()的; //3. urlencode() 的结果用rawurldecode()来解,可能有问题,urlencode() 可以把空格编成加号,而rawurldecode() 却不将加号解码成空格; //4. 对于url的东西用urlencode已经足够,但是用rawurlencode 也绝对没有问题,urlencode天生是为url编码准备的,而rawurlencode() // 参考资料:http://man.chinaunix.net/develop/rfc/RFC1738.txt exit;
|
输出:
———-PHP代码调试 ———-
foo @+%/
foo%20%40%2B%25%2F
foo @+%/
foo+%40%2B%25%2F
foo+@+%/
输出完成 (耗时 0 秒) – 正常终止