PHP解密Unicode及Escape加密字符串
内容摘要
本文给大家分享一个PHP解密Unicode及Escape加密字符串函数
<?php
function uni_decode($s) {
preg_match_all('/\&\#([0-9]{2,5})\;/', $s, $html_uni);
pr
<?php
function uni_decode($s) {
preg_match_all('/\&\#([0-9]{2,5})\;/', $s, $html_uni);
pr
文章正文
本文给大家分享一个PHP解密Unicode及Escape加密字符串函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <?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函数,大同小异
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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 ; } |
以上所述就是本文的全部内容了,希望大家能够喜欢。
代码注释