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随机生成福彩双色球号码的2种方法
Feb 04 PHP
使用PHP会话(Session)实现用户登陆功能
Jun 29 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
Jun 19 PHP
ThinkPHP让分页保持搜索状态的方法
Jul 02 PHP
PHP内核学习教程之php opcode内核实现
Jan 27 PHP
php语言的7种基本的排序方法
Dec 28 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
Django 中 cookie的使用
Aug 17 PHP
PHP实现防止表单重复提交功能【基于token验证】
May 24 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 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判断浏览器的类型和语言的函数代码
2013/02/28 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
2014/02/04 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
2016/04/13 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
21行Python代码实现拼写检查器
2016/01/25 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
Python实现购物车程序
2018/04/16 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
python抖音表白程序源代码
2019/04/07 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
大门门卫岗位职责
2013/11/30 职场文书
酒店副总岗位职责
2013/12/24 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
赢在执行观后感
2015/06/16 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server