PHP解密Unicode及Escape加密字符串

本文给大家分享一个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 />u8FD9u662Fu6D4Bu8BD5u6587u672CuFF01';    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解密Unicode及Escape加密字符串

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服

发表评论

登录后才能评论