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


Posted in PHP onJanuary 28, 2010

这是很久以前收集的一个,不知道谁写的了,但经过测试没有问题~
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%u8BD53water.com%22%22%27%27%3C%3E%26%26

解码后:
测试3water.com""''<>&&
PHP 相关文章推荐
一个好用的分页函数
Nov 16 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
使用NetBeans + Xdebug调试PHP程序的方法
Apr 12 PHP
php摘要生成函数(无乱码)
Feb 04 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 PHP
php遍历解析xml字符串的方法
May 05 PHP
CI框架整合widget(页面格局)的方法
May 17 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
Dec 13 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
利用ajax+php实现商品价格计算
Mar 31 PHP
php读取xml实例代码
Jan 28 #PHP
通过具体程序来理解PHP里面的抽象类
Jan 28 #PHP
认识并使用PHP超级全局变量
Jan 26 #PHP
php 静态变量与自定义常量的使用方法
Jan 26 #PHP
php学习之 认清变量的作用范围
Jan 26 #PHP
PHP 变量的定义方法
Jan 26 #PHP
php cout&amp;lt;&amp;lt;的一点看法
Jan 24 #PHP
You might like
精通php的十大要点(上)
2009/02/04 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
php 启动报错如何解决
2014/01/17 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
jQuery 技巧小结
2010/04/02 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python入门篇之列表和元组
2014/10/17 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
学子宴答谢词
2014/01/25 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
加入学生会演讲稿
2014/04/24 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
课外活动总结
2015/02/04 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书