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 相关文章推荐
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
php 空格,换行,跳格使用说明
Dec 18 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 PHP
php中sprintf与printf函数用法区别解析
Feb 17 PHP
Codeigniter的dom类用法实例
Jun 26 PHP
PHP连接数据库实现注册页面的增删改查操作
Mar 27 PHP
php实现用户登陆简单实例
Apr 04 PHP
利用PHP实现开心消消乐的算法示例
Oct 12 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
PHP中__set()实例用法和基础讲解
Jul 23 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解析xml 的四种简单方法(附实例)
2016/07/11 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
node.js缺少mysql模块运行报错的解决方法
2016/11/13 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
pygame学习笔记(4):声音控制
2015/04/15 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
python实现反转部分单向链表
2018/09/27 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
上课迟到检讨书范文
2015/05/06 职场文书
安全教育第一课观后感
2015/06/17 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS