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 相关文章推荐
文件上传的实现
Oct 09 PHP
用PHP和ACCESS写聊天室(九)
Oct 09 PHP
php中将数组存到文件里的实现代码
Jan 19 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
Apr 09 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
详解php中反射的应用
Mar 15 PHP
PHP经典实用正则表达式小结
May 04 PHP
PHP 网站修改默认访问文件的nginx配置
May 27 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 04 PHP
PHP实现随机发扑克牌
Apr 22 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
当海贼王变成JOJO风
2020/03/02 日漫
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
php学习笔记之基础知识
2014/11/08 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
2018/04/04 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
element-ui表格数据转换的示例代码
2018/08/24 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
Python群发邮件实例代码
2014/01/03 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
CSS3教程:新增加的结构伪类
2009/04/02 HTML / CSS
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
园林资料员岗位职责
2013/12/30 职场文书
职工运动会邀请函
2014/01/19 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
Ajax实现异步加载数据
2021/11/17 Javascript
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电