escape编码和unescape解码-PHP源码
php代码
function escape($str) {
$sublen = strlen ( $str );
$retrunString = "";
for($i = 0; $i < $sublen; $i ++) {
if (ord ( $str [$i] ) >= 127) {
$tmpString = bin2hex ( iconv ( "gb2312", "ucs-2", substr ( $str, $i, 2 ) ) );
$retrunString .= "%u" . $tmpString;
$i ++;
} else {
$retrunString .= "%" . dechex ( ord ( $str [$i] ) );
}
}
return $retrunString;
}
function unescape($str) {
$str = rawurldecode ( $str );
preg_match_all ( "/%u.{4}|.{4};|\d+;|.+/U", $str, $r );
$ar = $r [0];
foreach ( $ar as $k => $v ) {
if (substr ( $v, 0, 2 ) == "%u")
$ar [$k] = iconv ( "UCS-2", "GBK", pack ( "H4", substr ( $v, - 4 ) ) );
elseif (substr ( $v, 0, 3 ) == "")
$ar [$k] = iconv ( "UCS-2", "GBK", pack ( "H4", substr ( $v, 3, - 1 ) ) );
elseif (substr ( $v, 0, 2 ) == "") {
$ar [$k] = iconv ( "UCS-2", "GBK", pack ( "n", substr ( $v, 2, - 1 ) ) );
}
}
return join ( "", $ar );
}
/php/36791.htmlwww.phpzy.comtrue/php/36791.htmlTechArticleescape编码和unescape解码-PHP源码 php代码 function escape($str) {$sublen = strlen ( $str );$retrunString = "";for($i = 0; $i = 127) {$tmpString = bin2hex ( iconv ( "gb2312", "ucs-2", substr ( $str, $i, 2 ) ) );$retrunString .= "%u"...
PHP之友评论