Heim  >  Artikel  >  php教程  >  PHP解密Unicode及Escape加密字符串函数

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

PHP中文网
PHP中文网Original
2016-05-23 17:10:151561Durchsuche

php代码

<?php   
function uni_decode($s) {   
    preg_match_all(&#39;/\&\#([0-9]{2,5})\;/&#39;, $s, $html_uni);   
    preg_match_all(&#39;/[\\\%]u([0-9a-f]{4})/ie&#39;, $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(&#39;/\\\u([0-9a-f]{4})/ie&#39;, "chr(hexdec(&#39;\\1&#39;))",  $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=&#39;%u5927%u5BB6%u597D%uFF0C
\u8FD9\u662F\u6D4B\u8BD5\u6587\u672C\uFF01&#39;;   
echo uni_decode($str);

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:分享一个php 中文乱码bugNächster Artikel:在线端口扫描工具