//UTF-8 js escape实现 |
function escape( $str ) { |
preg_match_all( "/[\xc2-\xdf][\x80-\xbf]+|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}|[\x01-\x7f]+/e" , $str , $r ); |
$str = $r [0]; |
$l = count ( $str ); |
for ( $i =0; $i < $l ; $i ++) { |
$value = ord( $str [ $i ][0]); |
if ( $value < 223) { |
$str [ $i ] = rawurlencode(utf8_decode( $str [ $i ])); |
} |
else { |
$str [ $i ] = "%u" . strtoupper (bin2hex(iconv( "UTF-8" , "UCS-2" , $str [ $i ]))); |
} |
} |
return join( "" , $str ); |
} |
//UTF-8 js unescape实现 |
function js_unescape( $str ) { |
$ret = '' ; |
$len = strlen ( $str ); |
for ( $i = 0; $i < $len ; $i ++) { |
if ( $str [ $i ] == '%' && $str [ $i +1] == 'u' ) { |
$val = hexdec( substr ( $str , $i +2, 4)); |
if ( $val < 0x7f) $ret .= chr ( $val ); |
else if ( $val < 0x800) $ret .= chr (0xc0|( $val >>6)). chr (0x80|( $val &0x3f)); |
else $ret .= chr (0xe0|( $val >>12)). chr (0x80|(( $val >>6)&0x3f)). chr (0x80|( $val &0x3f)); |
$i += 5; |
} |
else if ( $str [ $i ] == '%' ) { |
$ret .= urldecode( substr ( $str , $i , 3)); |
$i += 2; |
} |
else $ret .= $str [ $i ]; |
} |
return $ret ; |
} |
高级设计师
by: 小蜜锋 发表于:2014-11-02 21:01:51 顶(1) | 踩(0) 回复
回复评论