PHP:urlencode

urlencode是用于对字符串进行编码,使得所有字符都能被放入url中,而不会被解析器误解。

正如html中的<>这样的符号是标记符,如果正文中存在<,要把它转义为&lt;

url中的&是连接符,用来连接两个字段。url的格式是http://www.test.com/a/b?k1=v1&k2=v2。这里的&连接了两个子串,左边字串的字段名为k1,值为v1,右边的字段名为k2,值为v2。想象下如果某个字段对应的值里面需要包含&,那怎么办呢?

urlencode就是用来处理这样的情况,使url解析器能正确处理作为值得&。

测试用例:

<?php
$testCase = array('&', '=', '<', '>', '.', '/', '\'', '"', '\\', '+', '%', '#', '$', '@');
foreach ($testCase as $case) {
    echo $case."\turlencode:".urlencode($case)."\n";
}

输出:

&    urlencode:%26
=    urlencode:%3D
<    urlencode:%3C
>    urlencode:%3E
.    urlencode:.
/    urlencode:%2F
'    urlencode:%27
"    urlencode:%22
\    urlencode:%5C
+    urlencode:%2B
%    urlencode:%25
#    urlencode:%23
$    urlencode:%24
@    urlencode:%40

可以看到只有.没有被转义。很多特殊字符都被转义了,例子并不全。另外中文也会被转义。

posted on 2014-03-19 17:53  awildfish  阅读(395)  评论(0编辑  收藏  举报

导航