PHP解密Unicode及Escape加密字符串


Posted in PHP onMay 17, 2015

本文给大家分享一个PHP解密Unicode及Escape加密字符串函数

<?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_uni);  
  $source = array_merge($html_uni[0], $js_uni[0]);  
  $js = array();  
  for($i=0;$i<count($js_uni[1]);$i++) {  
    $js[] = hexdec($js_uni[1][$i]);  
  }  
  $utf8 = array_merge($html_uni[1], $js);  
  $code = $s;  
  for($j=0;$j<count($utf8);$j++) {  
    $code = str_replace($source[$j], unicode2utf8($utf8[$j]), $code);  
  }  
  return $code;//$s;//preg_replace('/\\\u([0-9a-f]{4})/ie', "chr(hexdec('\\1'))", $s);  
}  
  
function unicode2utf8($c) {  
  $str="";  
  if ($c < 0x80) {  
     $str.=chr($c);  
  } else if ($c < 0x800) {  
     $str.=chr(0xc0 | $c>>6);  
     $str.=chr(0x80 | $c & 0x3f);  
  } else if ($c < 0x10000) {  
     $str.=chr(0xe0 | $c>>12);  
     $str.=chr(0x80 | $c>>6 & 0x3f);  
     $str.=chr(0x80 | $c & 0x3f);  
  } else if ($c < 0x200000) {  
     $str.=chr(0xf0 | $c>>18);  
     $str.=chr(0x80 | $c>>12 & 0x3f);  
     $str.=chr(0x80 | $c>>6 & 0x3f);  
     $str.=chr(0x80 | $c & 0x3f);  
  }  
  return $str;  
}  
  
$str='%u5927%u5BB6%u597D%uFF0C我是孤魂!<br />\u8FD9\u662F\u6D4B\u8BD5\u6587\u672C\uFF01';  
echo uni_decode($str); // 大家好,我是孤魂!这是测试文本!

在网上搜索一把,很多用php实现的escape函数,大同小异

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; 
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
php结合表单实现一些简单功能的例子
Jun 04 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
6种php上传图片重命名的方法实例
Nov 04 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
php ci框架中加载css和js文件失败的解决方法
Mar 03 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
最新版本PHP 7 vs HHVM 多角度比较
Feb 14 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
PHP hex2bin()函数用法讲解
Feb 25 PHP
PHP实现远程下载文件到本地
May 17 #PHP
PHP生成json和xml类型接口数据格式
May 17 #PHP
php实现文本数据导入SQL SERVER
May 17 #PHP
php中PDO方式实现数据库的增删改查
May 17 #PHP
PHP图像处理类库及演示分享
May 17 #PHP
递归实现php数组转xml的代码分享
May 14 #PHP
php编写批量生成不重复的卡号密码代码
May 14 #PHP
You might like
织梦模板标记简介
2007/03/11 PHP
php网页病毒清除类
2014/12/08 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
python获取当前日期和时间的方法
2015/04/30 Python
python脚本监控docker容器
2016/04/27 Python
python的pdb调试命令的命令整理及实例
2017/07/12 Python
Django中反向生成models.py的实例讲解
2018/05/30 Python
python文件写入write()的操作
2019/05/14 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
运行Python编写的程序方法实例
2020/10/21 Python
主管职责范文
2013/11/09 职场文书
影视艺术学院毕业生自荐信
2013/11/13 职场文书
员工工作表现评语
2014/04/26 职场文书
2014年教师业务学习材料
2014/05/12 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
学习心理学心得体会
2016/01/22 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python
OpenCV-Python实现油画效果的实例
2021/06/08 Python
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL