urlecode 与 rawurlencode

    

        

            

        

    

            

$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 秒) – 正常终止

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据