php中escape unescape的写法
发布时间:2022-06-17 08:52:44 所属栏目:PHP教程 来源:互联网
导读:*/ function phpescape($str){ $sublen=strlen($str); $restring=; for ($i=0;$i$sublen;$i++){ if(ord($str[$i])=127){ $tmps教程tring=bin2hex(iconv(utf-8,ucs-2,substr($str,$i,2))); if (!eregi(win,php_os)){ $tmpstring=substr($tmpstring,2,2).subst
|
*/ function phpescape($str){ $sublen=strlen($str); $restring=""; for ($i=0;$i<$sublen;$i++){ if(ord($str[$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}|&#x.{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) == "&#x") $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]) < 128) $ar[$k] = rawurlencode($v); else $ar[$k] = "%u".bin2hex(iconv("gb2312","ucs-2",$v)); } return join("",$ar); } function unescape($str) { $str = rawurldecode($str); preg_match_all("/(?:%u.{4})|.+/",$str,$r); $ar = $r[0]; foreach($ar as $k=>$v) { if(substr($v,0,2) == "%u" && strlen($v) == 6) $ar[$k] = iconv("ucs-2","gb2312",pack("h4",substr($v,-4))); } //开源代码phpfensi.com return join("",$ar); } (编辑:周口站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
