PHP实现urlencode和urldecode[原创]

标签: PHP urlencode urldecode PHP架构师应该从基础知识开始,迈开PHP架构师的第一步吧

PHP实现urlencode和urldecode[原创]

帖子NT流人 于 2010年 7月 21日 14:06

代码: 全选
function my_urldecode($s) {
        $l = strlen($s);
        $i = 0;
        $res = '';
        while ($i < $l) {
                if ($s[$i] == '+') {
                        $res .= ' ';
                        $i++;
                } elseif ($s[$i] == '%') {
                        $res .= chr(hexdec($s[$i+1].$s[$i+2]));
                        $i += 3;
                } else {
                        $res .= $s[$i];
                        $i++;
                }
        }

        return $res;
}


代码: 全选
function my_urlencode($s) {
        $l = strlen($s);
        $res = '';
        for ($i = 0; $i < $l;$i++) {
                $ascii = ord($s[$i]);
                if ($s[$i] == ' ') {
                        $res .= '+';
                } elseif (($ascii == 45 || $ascii == 46) || ($ascii >= 48 && $ascii <= 57) || ($ascii >= 65 && $ascii <= 90) || ($ascii >= 97 && $ascii <= 122)) {
                        $res .= $s[$i];
                } else {
                        $res .= '%' . strtoupper(dechex($ascii));
                }
        }
        return $res;
}
在指尖流浪
1. Everything changes and ends. 所有的事情在变化,都有终结
2. Things do not always go according to plan. 事情总会出乎意料(计划)之外
3. Life is not always fair. 生活并不总是公平
4. Pain is part of life. 痛苦是生活的一部分
5. People are not loving and loyal all the time. 人们并不总是热爱和忠诚
头像
NT流人
网站管理员
 
帖子: 744
加入时间: 2008年 1月 2日 13:15

Re: PHP实现urlencode和urldecode[原创]

帖子xiaokai 于 2010年 7月 22日 13:18

原来就是将每个字符的ascii码转换为十六进制加百分号.
等我看看特殊的那几个是啥意思..

-----------------------------------------------
- . 0-9 a-z A-Z
在路上..
头像
xiaokai
 
帖子: 18
加入时间: 2010年 5月 31日 19:08


回到 PHP新手区

在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客

cron