`
hawaii162162
  • 浏览: 76709 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

PHP对escape的字符串进行解密

阅读更多
Escape是js 脚本的一种加密字符串的方式.具体详情可以参见http://www.w3school.com.cn/js/jsref_unescape.asp 

有的网站会将中文字进行Escape编码,然后在显示时用unescape再进行转换.比如有这么一段代码

<title>广州公交查询-由%u91D1%u6CFD%u5927%u53A6到%u767E%u5F81%u79D1%u6280%u5927%u53A6的乘车路线</title>

这个是经过Escape编码的.我们需要在PHP中将其解密.在网上搜索后,得到加密和解密代码.

<?php

function unescape($str) { //这个是解密用的
         $str = rawurldecode($str); 
         preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/U",$str,$r); 
         $ar = $r[0]; 
         foreach($ar as $k=>$v) { 
                  if(substr($v,0,2) == "%u") 
                           $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,-4))); 
                  elseif(substr($v,0,3) == "&#x") 
                           $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1))); 
                  elseif(substr($v,0,2) == "&#") { 
                           $ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1))); 
                  } 
         } 
         return join("",$ar); 
}

function phpescape($str){//这个是加密用的
    preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$newstr);
    $ar = $newstr[0];
    foreach($ar as $k=>$v){
        if(ord($ar[$k])>=127){
            $tmpString=bin2hex(iconv("GBK","ucs-2",$v));
            if (!eregi("WIN",PHP_OS)){
                $tmpString = substr($tmpString,2,2).substr($tmpString,0,2);
            }
            $reString.="%u".$tmpString;
        } else {
            $reString.= rawurlencode($v);
        }
    }
    return $reString;
}

?>

我们测试一下

echo unescape("由%u91D1%u6CFD%u5927%u53A6到%u767E%u5F81%u79D1%u6280%u5927%u53A6的乘车路线");

可以得到  由金泽大厦到百征科技大厦的乘车路线

 

分享到:
评论

相关推荐

    风吟PHP Escape 加密/解密.rar

    3. **数据恢复**:解密后的数据可能还需要进行反预处理,比如,如果是URL编码的数据,需要使用`urldecode()`函数进行解码,还原为原本的字符串形式。 三、在URL和中文数据传输中的应用 1. **URL安全性**:在URL中...

    PHP解密Unicode及Escape加密字符串

    本文给大家分享一个PHP解密Unicode及Escape加密字符串函数 &lt;?php function uni_decode($s) { preg_match_all('/\&\#([0-9]{2,5})\;/', $s, $html_uni); preg_match_all('/[\\\%]u([0-9a-f]{4})/ie', $s, $js_...

    fy-escape_php_php解密_

    在PHP编程中,`escape`通常指的是对字符串进行编码,以便在特定环境下(如URL、HTML、数据库查询等)安全地使用。`PHP解密`则涉及到加密算法和函数,用于将之前用加密方法处理过的数据恢复成原始形式。本文将深入...

    风吟PHP Escape 加密/解密

    总的来说,`风吟PHP Escape 加密/解密`涉及到的是PHP中常见的字符串编码和解码技术,这些技术在Web开发中扮演着重要角色,确保了数据在网络间安全、准确地传输。通过对`code`文件的学习和实践,开发者可以提升自己在...

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    对要输出的字符串进行反转换 对输入JS进行转换 寻找两个函数所有不同的元素 寻找两数组所有不同元素 得到文件类型 截取字符串中两个特定唯一字符之间的内容 截取指定长度字符串 折线图 按照比例改变图片大小...

    php 正确解码javascript中通过escape编码后的字符

    JavaScript的`escape`函数用于对字符串进行编码,以便在URL、HTML或其他非文本上下文中使用。编码后的字符串会将某些特殊字符替换为百分比(`%`)编码的形式。然而,这种编码方式在处理Unicode字符时有一些特定的规则...

    用js进行url编码后用php反解以及用php实现js的escape功能函数总结

    这个函数对输入的字符串进行遍历,对于超出ASCII范围的字符,使用`iconv`转换为UCS-2编码并转换为十六进制。对于普通的ASCII字符,则直接使用`dechex()`和`%`来编码。这个函数可以帮助我们理解JavaScript中的`escape...

    PHP下escape解码函数的实现方法

    在PHP编程语言中,`escape`解码通常指的是将通过URL编码、HTML实体编码等方式处理过的字符串还原为原始形式。本文将重点解析两种不同的PHP解码函数实现方法,一种是针对GB2312编码,另一种是针对UTF8编码。 首先,...

    php加密 PHP语言基础

    `password_hash()`可以自动选择最安全的哈希算法(如bcrypt或Argon2),并生成包含盐值的哈希字符串。`password_verify()`则用于比较用户输入的密码与存储的哈希是否匹配,确保安全性。 2. **加密库:MCrypt和...

    PHP2016-03-24参考手册

    PHP内置了大量的函数,涵盖了字符串处理、数学运算、日期时间、文件系统、网络通信、加密解密等多个领域。例如,`strlen()`用于计算字符串长度,`date()`用于格式化日期,`file_get_contents()`用于读取文件内容,`...

    asp仿php的一些函数分享

    ' 此处省略了该函数的实现细节,它通过遍历字符串并按照一定规则进行编码。 End Function 对于URL解码和Escape解密,ASP和PHP都有相应的函数可以实现。例如,unescape函数可以用来解码经过escape函数加密的字符串...

    senlon实用查询工具大全 v2014 本地数据库版.zip

    IP地址查询、html加密解密、弹出式窗口代码生成、、CSS生成器、html与js代码互转、HTML转换PHP代码、HTML转换为Perl代码、框架网页代码生成、GB2312转UTF8代码、网页调式器、字符串长度计算、md5加密代码、Encode...

    CodeIgniter辅助函数和类库的使用

    2. **文本辅助函数**:例如`trim_string()`用于修剪字符串,`word_limiter()`用于限制文本长度,`character_limiter()`用于限制字符数量,这些函数在处理用户输入和展示内容时十分实用。 3. **日期和时间辅助函数**...

    MySQL中文参考手册

    o 7.1 文字:怎样写字符串和数字 + 7.1.1 字符串 + 7.1.2 数字 + 7.1.3 十六进制值 + 7.1.4 NULL值 + 7.1.5 数据库,表,索引,列和别名的命名 # 7.1.5.1 名字的大小写敏感性 o 7.2 用户变量 o 7.3 列类型 ...

    MYSQL

    6.14 怎样使MySQL安全以对抗解密高手(cracker) 7 MySQL 语言参考 7.1 文字:怎样写字符串和数字 7.1.1 字符串 7.1.2 数字 7.1.3 十六进制值 7.1.4 NULL值 7.1.5 数据库,表,索引,...

    MySQL中文参考手册.chm

    6.13 存取拒绝(Access Denied)错误的原因 6.14 怎样使MySQL安全以对抗解密高手(cracker) 7 MySQL 语言参考 7.1 文字:怎样写字符串和数字 7.1.1 字符串 7.1.2 数字 7.1.3 十六进制...

Global site tag (gtag.js) - Google Analytics