二种escape unescape在php教程写法
*/
function phpescape($str){ $sublen=strlen($str); $restring=""; for ($i=0;$i=127){ $tmps教程tring=bin2hex(iconv("utf-8","ucs-2",substr($str,$i,2))); if (!eregi("win",php_os)){ $tmpstring=substr($tmpstring,2,2).substr($tmpstring,0,2); } $restring.="%u".$tmpstring; $i++; } else { $restring.="%".dechex(ord($str[$i])); } } return $restring; } 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","utf-8",pack("h4",substr($v,-4))); elseif(substr($v,0,3) == "") $ar[$k] = iconv("ucs-2","utf-8",pack("h4",substr($v,3,-1))); elseif(substr($v,0,2) == "") { $ar[$k] = iconv("ucs-2","utf-8",pack("n",substr($v,2,-1))); } } return join("",$ar); } function escape($str) { preg_match_all("/[x80-xff].|[x01-x7f]+/",$str,$r); $ar = $r[0]; foreach($ar as $k=>$v) { if(ord($v[0]) $v) { if(substr($v,0,2) == "%u" && strlen($v) == 6) $ar[$k] = iconv("ucs-2","gb2312",pack("h4",substr($v,-4))); } return join("",$ar); }











