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 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
php操作memcache缓存方法分享
Jun 03 PHP
学习php设计模式 php实现工厂模式(factory)
Dec 07 PHP
php的debug相关函数用法示例
Jul 11 PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 PHP
Thinkphp实现短信验证注册功能
Oct 18 PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 PHP
tp5实现微信小程序多图片上传到服务器功能
Jul 16 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
Apr 12 PHP
PHP网站常见安全漏洞,及相应防范措施总结
Mar 01 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/03 咖啡文化
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
Python中的高级函数map/reduce使用实例
2015/04/13 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
高一物理教学反思
2014/01/24 职场文书
销售员个人求职的自我评价
2014/02/10 职场文书
户外宣传策划方案
2014/05/25 职场文书
关于观后感的作文
2015/06/18 职场文书
公司开业主持词
2015/07/02 职场文书
获奖感言怎么写
2015/07/31 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
golang中的struct操作
2021/11/11 Golang