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 相关文章推荐
MySQL授权问题总结
May 06 PHP
php将会员数据导入到ucenter的代码
Jul 18 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
Yii框架中memcache用法实例
Dec 03 PHP
PHP中new static() 和 new self() 的区别介绍
Jan 09 PHP
php中使用sftp教程
Mar 30 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
php支付宝在线支付接口开发教程
Sep 19 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
PHP 验证码不显示只有一个小红叉的解决方法
2013/09/30 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
python正则表达式re模块详细介绍
2014/05/29 Python
Python可迭代对象操作示例
2019/05/07 Python
Django中create和save方法的不同
2019/08/13 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
jupyter实现重新加载模块
2020/04/16 Python
django中嵌套的try-except实例
2020/05/21 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
比驿:全球酒店比价网
2018/06/20 全球购物
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
酒店管理毕业生自荐信
2013/10/24 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
招标保密承诺书
2015/01/20 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
Vue2.0搭建脚手架
2022/03/13 Vue.js