PHP下escape解码函数的实现方法
PHP下escape解码函数的实现方法
发布时间:2016-12-29 来源:查字典编辑
摘要:GB2312编码:复制代码代码如下:functionunescape($str){$str=rawurldecode($str);preg_...

GB2312编码:

复制代码 代码如下:

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")

$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);

}

UTF8编码:

复制代码 代码如下:

function unescape($str){

$ret = '';

$len = strlen($str);

for ($i = 0; $i < $len; $i++){

if ($str[$i] == '%' && $str[$i+1] == 'u'){

$val = hexdec(substr($str, $i+2, 4));

if ($val < 0x7f) $ret .= chr($val);

else if($val < 0x800) $ret .= chr(0xc0|($val>>6)).chr(0x80|($val&0x3f));

else $ret .= chr(0xe0|($val>>12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f));

$i += 5;

}

else if ($str[$i] == '%'){

$ret .= urldecode(substr($str, $i, 3));

$i += 2;

}

else $ret .= $str[$i];

}

return $ret;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类