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 相关文章推荐
PHP调用三种数据库的方法(1)
Oct 09 PHP
php类
Nov 27 PHP
PHP4与PHP5的时间格式问题
Feb 17 PHP
五个PHP程序员工具
May 26 PHP
swfupload 多文件上传实现代码
Aug 27 PHP
一个简单的网页密码登陆php代码
Jul 17 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
php获取301跳转URL简单实例
Dec 16 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
ThinkPHP模型详解
Jul 27 PHP
PHP提取字符串中的手机号正则表达式怎么写
Jul 17 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
Oct 22 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
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
JavaScript中this详解
2015/09/01 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
pycharm 使用心得(三)Hello world!
2014/06/05 Python
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
python的socket编程入门
2018/01/29 Python
Python装饰器用法示例小结
2018/02/11 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
python学生管理系统学习笔记
2019/03/19 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
PyQt5组件读取参数的实例
2019/06/25 Python
Python创建数字列表的示例
2019/11/28 Python
五种Python转义表示法
2020/11/27 Python
Django中使用Celery的方法步骤
2020/12/07 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
财务经理的岗位职责
2013/12/17 职场文书
初中教师业务学习材料
2014/05/12 职场文书
2014年标准化工作总结
2014/12/17 职场文书
学生病假条范文
2015/08/17 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
python神经网络ResNet50模型
2022/05/06 Python