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中实现图片的锐化
Oct 09 PHP
PHP产生随机字符串函数
Dec 06 PHP
JSON在PHP中的应用介绍
Sep 08 PHP
PHP之短标签开启设置
Jun 17 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
Mar 05 PHP
php分割合并两个字符串的函数实例
Jun 19 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
php+jQuery+Ajax简单实现页面异步刷新
Aug 08 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
php分页查询mysql结果的base64处理方法示例
May 18 PHP
PHP实现微信小程序用户授权的工具类示例
Mar 05 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数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
php两种无限分类方法实例
2015/04/21 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
2017/06/13 Javascript
对Python定时任务的启动和停止方法详解
2019/02/19 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
县优秀教师事迹材料
2014/01/31 职场文书
计算机毕业生自荐信范文
2014/03/23 职场文书
销售主管竞聘书
2014/03/31 职场文书
经理任命书模板
2014/06/06 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
小学推普周活动总结
2015/05/07 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python