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类
Oct 09 PHP
php htmlentities和htmlspecialchars 的区别
Aug 18 PHP
php 什么是PEAR?(第三篇)
Mar 19 PHP
PHP 获取MySQL数据库里所有表的实现代码
Jul 13 PHP
一个PHP的QRcode类与大家分享
Nov 13 PHP
php使用反射插入对象示例分享
Mar 11 PHP
PHP中的多行字符串传递给JavaScript的两种方法
Jun 19 PHP
php实现字符串翻转的方法
Mar 27 PHP
php使用MySQL保存session会话的方法
Jun 18 PHP
PHP获取不了React Native Fecth参数的解决办法
Aug 26 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 PHP
laravel框架中间件简单使用方法示例
Jan 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
PHP内置加密函数详解
2016/11/20 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
js密码强度检测
2016/01/07 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
Python可跨平台实现获取按键的方法
2015/03/05 Python
浅谈MySQL中的触发器
2015/05/05 Python
python与C互相调用的方法详解
2017/07/14 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
简述安装Slackware Linux系统的过程
2012/01/12 面试题
银行实习人员自我鉴定
2013/09/22 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
党支部三会一课计划
2014/09/24 职场文书
在职证明书模板
2015/06/15 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
OpenCV实现常见的四种图像几何变换
2022/04/01 Python
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers