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 相关文章推荐
3
Oct 09 PHP
微盾PHP脚本加密专家php解密算法
Sep 13 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
Oct 25 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
具有时效性的php加密解密函数代码
Jun 19 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 PHP
php计算当前程序执行时间示例
Apr 24 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
thinkPHP的表达式查询用法详解
Sep 14 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 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
PHP生成随机密码类分享
2014/06/25 PHP
修改发贴的编辑功能
2007/03/07 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
json数据与字符串的相互转化示例
2013/09/18 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
微信小程序之蓝牙的链接
2017/09/26 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
Linux环境下MySQL-python安装过程分享
2015/02/02 Python
用Python实现协同过滤的教程
2015/04/08 Python
Python中datetime模块参考手册
2017/01/13 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
莫斯科珠宝厂官方网站:Miuz
2020/09/19 全球购物
五月的鲜花活动方案
2014/08/21 职场文书
违章停车检讨书
2014/10/21 职场文书
浅析Python实现DFA算法
2021/06/26 Python
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby