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 相关文章推荐
同一空间绑定多个域名而实现访问不同页面的PHP代码
Dec 06 PHP
php基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
PHP中的integer类型使用分析
Jul 27 PHP
PHP执行批量mysql语句的解决方法
May 02 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
Mar 03 PHP
php简单生成随机数的方法
Jul 30 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 PHP
php微信公众号开发之图片回复
Oct 20 PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
培养自己的php编码规范
2015/09/28 PHP
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
Ext grid 添加右击菜单
2009/11/26 Javascript
基于jQuery的js分页代码
2010/06/10 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
js HTML5上传示例代码完整版
2016/10/10 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
python 实现图片批量压缩的示例
2020/12/18 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
css3实现可滑动跳转的分页插件示例
2014/05/08 HTML / CSS
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
中专生毕业自我鉴定
2013/11/01 职场文书
有针对性的求职自荐信
2013/11/14 职场文书
机电一体化职业规划书
2014/01/07 职场文书
中学生自我评价范文
2014/02/08 职场文书
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
施工单位安全责任书
2014/07/24 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
护士自荐信怎么写
2015/03/06 职场文书
防溺水主题班会教案
2015/08/12 职场文书
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript