ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルでエスケープとアンエスケープを記述する 2 つの方法

PHP_PHP チュートリアルでエスケープとアンエスケープを記述する 2 つの方法

WBOY
WBOYオリジナル
2016-07-13 17:09:33981ブラウズ

二种escape unescape在php教程写法

*/

関数phpescape($str){
$sublen=strlen($str);
$restring="";
for ($i=0;$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++;
} その他 {
$restring.="%".dechex(ord($str[$i]));
}
}
$restring を返します。
}


関数 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);
}


関数エスケープ($str) {
preg_match_all("/[x80-xff].|[x01-x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(ord($v[0]) $ar[$k] = rawurlencode($v);
それ以外は
$ar[$k] = "%u".bin2hex(iconv("gb2312","ucs-2",$v));
}
return join("",$ar);
}


関数 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)));
}
return join("",$ar);
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629737.html技術記事二种escape unescape在php教程写法 */ function phpescape($str){ $sublen=strlen($str); $restring=; for ($i=0;$i$sublen;$i++){ if(ord($str[$i])=127){ $tmps教程tring=bin2hex(ic...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。