php 正确解码javascript中通过escape编码后的字符
作者:bea
这是很久以前收集的一个,不知道谁写的了,但经过测试没有问题~ JavaScript代码 代码如下: function phpUnescape($escstr) { preg_match_all("/%u[0-9A-Za-z]{4}|%.{2}|[0-9a-zA-Z.+-_]+/", $escstr, $matches); $ar = &$matches[0]; $c = ""; foreach($ar as $val) { if (substr($
这是很久以前收集的一个,不知道谁写的了,但经过测试没有问题~
JavaScript代码
代码如下:
function phpUnescape($escstr)
{
preg_match_all("/%u[0-9A-Za-z]{4}|%.{2}|[0-9a-zA-Z.+-_]+/", $escstr, $matches);
$ar = &$matches[0];
$c = "";
foreach($ar as $val)
{
if (substr($val, 0, 1) != "%")
{
$c .= $val;
} elseif (substr($val, 1, 1) != "u")
{
$x = hexdec(substr($val, 1, 2));
$c .= chr($x);
}
else
{
$val = intval(substr($val, 2), 16);
if ($val < 0x7F) // 0000-007F
{
$c .= chr($val);
} elseif ($val < 0x800) // 0080-0800
{
$c .= chr(0xC0 | ($val / 64));
$c .= chr(0x80 | ($val % 64));
}
else // 0800-FFFF
{
$c .= chr(0xE0 | (($val / 64) / 64));
$c .= chr(0x80 | (($val / 64) % 64));
$c .= chr(0x80 | ($val % 64));
}
}
}
return $c;
}
escape编码后:
代码如下:
%u6D4B%u8BD5%22%22%27%27%3C%3E%26%26
解码后:
代码如下:
测试""''<>&&
有用 | 无用
JavaScript代码
代码如下:
function phpUnescape($escstr)
{
preg_match_all("/%u[0-9A-Za-z]{4}|%.{2}|[0-9a-zA-Z.+-_]+/", $escstr, $matches);
$ar = &$matches[0];
$c = "";
foreach($ar as $val)
{
if (substr($val, 0, 1) != "%")
{
$c .= $val;
} elseif (substr($val, 1, 1) != "u")
{
$x = hexdec(substr($val, 1, 2));
$c .= chr($x);
}
else
{
$val = intval(substr($val, 2), 16);
if ($val < 0x7F) // 0000-007F
{
$c .= chr($val);
} elseif ($val < 0x800) // 0080-0800
{
$c .= chr(0xC0 | ($val / 64));
$c .= chr(0x80 | ($val % 64));
}
else // 0800-FFFF
{
$c .= chr(0xE0 | (($val / 64) / 64));
$c .= chr(0x80 | (($val / 64) % 64));
$c .= chr(0x80 | ($val % 64));
}
}
}
return $c;
}
escape编码后:
代码如下:
%u6D4B%u8BD5%22%22%27%27%3C%3E%26%26
解码后:
代码如下:
测试""''<>&&
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- PHP 手机归属地查询 api
- Memcache 在PHP中的使用技巧
- PHP Memcached应用实现代码
- 两个开源的Php输出Excel文件类
- php 处理上百万条的数据库如何提高处理查询速度
- php+mysql事务rollback&commit示例
- php 生成随机验证码图片代码
- 劣质的PHP代码简化
- php date与gmdate的获取日期的区别
- php 获取当前访问的url文件名的方法小结
- 用php实现的下载css文件中的图片的代码
- php不用内置函数对数组排序的两个算法代码
- Linux下将excel数据导入到mssql数据库中的方法
- PHPWind 发帖回帖Api PHP版打包下载
- php cli 方式 在crotab中运行解决
- 用js进行url编码后用php反解以及用php实现js的escape功能函数总结
- Zend framework处理一个http请求的流程分析
- PHP函数常用用法小结
- 在PHP中养成7个面向对象的好习惯