您的位置:首页 > Web前端 > JavaScript

PHP实现类似JAVASCRIPT中的escape()和unescape()编码.

2010-03-31 17:30 627 查看
网上抄来的,具体是谁的也不清楚了。记录一下。

主要是解决PHP在应用 jQuery.ajax() 时的中文字符的编码转换,以防出现乱码

<?php
//****************************************************
//以下方法为对URL地址进行类似javascript escape()编码
//****************************************************
function escape($str)
{
$res = @unpack("H*",iconv("gb2312","UCS-2",$str));
$res = preg_replace("/(.{4})/is","%u//1",$res[1]);
return $res;
}

//****************************************************
//以下方法为对URL地址进行类似javascript unescape()解码
//****************************************************
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","gb2312",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);
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: