PHP实现escape方法
原创 52cxy 12-20 10:23 阅读数:983

PHP实现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 );
	//匹配utf-8字符,
	$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] ) );
			//先将utf8编码转换为ISO-8859-1编码的单字节字符,urlencode单字节字符.
			//utf8_decode()的作用相当于iconv("UTF-8","CP1252",$v)。
		} else {
			$json = json_encode($str[$i]);
			$str[$i] = "%u" . strtoupper(substr($json,3,strlen($json)-4));
		}
	}
	return join ( "", $str );
}


共0条评论
我要评论