您的位置:首页 > Web前端 > JavaScript

php正确解码javascript中通过escape编码后的字符

2010-01-28 12:34 423 查看
js的escape如何在PHP中来解呢?

下面的这个函数可以正确的解析,网上有不少unescape的函数,但好用的不多.

这是很久以前收集的一个,不知道谁写的了,但经过测试没有问题~

JavaScript代码

代码

01.function phpUnescape($escstr)
02.{
03.    preg_match_all("/%u[0-9A-Za-z]{4}|%.{2}|[0-9a-zA-Z.+-_]+/", $escstr, $matches);
04.    $ar = &$matches[0];
05.    $c = "";
06.    foreach($ar as $val)
07.    {
08.        if (substr($val, 0, 1) != "%")
09.        {
10.            $c .= $val;
11.        } elseif (substr($val, 1, 1) != "u")
12.        {
13.            $x = hexdec(substr($val, 1, 2));
14.            $c .= chr($x);
15.        }
16.        else
17.        {
18.            $val = intval(substr($val, 2), 16);
19.            if ($val < 0x7F) // 0000-007F
20.            {
21.                $c .= chr($val);
22.            } elseif ($val < 0x800) // 0080-0800
23.            {
24.                $c .= chr(0xC0 | ($val / 64));
25.                $c .= chr(0x80 | ($val % 64));
26.            }
27.            else // 0800-FFFF
28.            {
29.                $c .= chr(0xE0 | (($val / 64) / 64));
30.                $c .= chr(0x80 | (($val / 64) % 64));
31.                $c .= chr(0x80 | ($val % 64));
32.            }
33.        }
34.    }
35.
36.    return $c;
37.}
escape编码后:

%u6D4B%u8BD5www.koyoz.com%22%22%27%27%3C%3E%26%26


解码后:

[code]测试www.koyoz.com""''<>&&


摘自:http://www.koyoz.com/blog/?action=show&id=207[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: