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 相关文章推荐
echo(),print(),print_r()之间的区别?
Nov 19 PHP
php 使用post,get的一种简洁方式
Apr 25 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
Admin generator, filters and I18n
Oct 06 PHP
基于PHP 面向对象之成员方法详解
May 04 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
php 生成自动创建文件夹并上传文件的示例代码
Mar 07 PHP
YII实现分页的方法
Jul 09 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
Feb 20 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
如何利用预加载优化Laravel Model查询详解
Aug 11 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
wordpress之wp-settings.php
2007/08/17 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
提高php编程效率技巧
2015/08/13 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
javascript工具库代码
2012/03/29 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
Json解析的方法小结
2016/06/22 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
Python pymongo模块常用操作分析
2018/09/01 Python
如何获取Python简单for循环索引
2019/11/21 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
面料业务员岗位职责
2013/12/26 职场文书
2014年度培训工作总结
2014/11/27 职场文书
幼师中班个人总结
2015/02/12 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python