You must say:"Yes" or "All right"! 注册 | 登陆

PHP解密Unicode及Escape加密字符串函数


PHP代码
  1. <?   
  2. function uni_decode($s) {   
  3.     preg_match_all('/\&\#([0-9]{2,5})\;/'$s$html_uni);   
  4.     preg_match_all('/[\\\%]u([0-9a-f]{4})/ie'$s$js_uni);   
  5.     $source = array_merge($html_uni[0], $js_uni[0]);   
  6.     $js = array();   
  7.     for($i=0;$i<count($js_uni[1]);$i++) {   
  8.         $js[] = hexdec($js_uni[1][$i]);   
  9.     }   
  10.     $utf8 = array_merge($html_uni[1], $js);   
  11.     $code = $s;   
  12.     for($j=0;$j<count($utf8);$j++) {   
  13.         $code = str_replace($source[$j], unicode2utf8($utf8[$j]), $code);   
  14.     }   
  15.     return $code;//$s;//preg_replace('/\\\u([0-9a-f]{4})/ie', "chr(hexdec('\\1'))",  $s);   
  16. }   
  17.   
  18. function unicode2utf8($c) {   
  19.     $str="";   
  20.     if ($c < 0x80) {   
  21.          $str.=chr($c);   
  22.     } else if ($c < 0x800) {   
  23.          $str.=chr(0xc0 | $c>>6);   
  24.          $str.=chr(0x80 | $c & 0x3f);   
  25.     } else if ($c < 0x10000) {   
  26.          $str.=chr(0xe0 | $c>>12);   
  27.          $str.=chr(0x80 | $c>>6 & 0x3f);   
  28.          $str.=chr(0x80 | $c & 0x3f);   
  29.     } else if ($c < 0x200000) {   
  30.          $str.=chr(0xf0 | $c>>18);   
  31.          $str.=chr(0x80 | $c>>12 & 0x3f);   
  32.          $str.=chr(0x80 | $c>>6 & 0x3f);   
  33.          $str.=chr(0x80 | $c & 0x3f);   
  34.     }   
  35.     return $str;   
  36. }   
  37.   
  38. $str='%u5927%u5BB6%u597D%uFF0C我是孤魂!<br />\u8FD9\u662F\u6D4B\u8BD5\u6587\u672C\uFF01';   
  39. echo uni_decode($str); // 大家好,我是孤魂!这是测试文本!   
  40. ?>  

Tags: php

« 上一篇 | 下一篇 »

只显示10条记录相关文章

PHP CURL模拟GET及POST函数 (浏览: 3812, 评论: 6)
出自DISCUZ的PHP MYSQL操作类 (浏览: 2773, 评论: 0)
DeZend工具 (浏览: 74, 评论: 0)
PHP使用GD库实现截屏 (浏览: 2291, 评论: 0)
Php ini_set ini_get可操作配置参数列表 (浏览: 2486, 评论: 0)
英文网站将标题自动转换为网址的函数 (浏览: 2479, 评论: 0)
PHP中格式化RFC 822之类的日期函数 (浏览: 3039, 评论: 1)
重新写的一个CURL模拟登录获取及提交数据的函数 (浏览: 6459, 评论: 4)
原创:Wordpress博客使用bokecc的UBB标签插件 (浏览: 3383, 评论: 1)
PHP与正则表达式中的模式修正符 (浏览: 3428, 评论: 2)

1条记录访客评论

最近看几个人的博客。。。原来博主是这么厉害啊。。。

Post by 野力 on 2009, August 24, 4:36 PM 引用此文发表评论 #1


发表评论

评论内容 (必填):