等同js脚本里的unescape函数
null Core_Text::unescape( string $str [, string $encode = string(5) "UTF-8" ] )
参数列表
参数 类型 描述 默认值 $str
string
$str $encode
string
$encode string(5) "UTF-8"
public static function unescape($str, $encode = 'UTF-8')
{
$encode = strtoupper($encode);
if ( $encode == 'GBK' || $encode == 'GB2312' )
{
$substrStrNum = 2;
}
else
{
$substrStrNum = 3;
}
$str = rawurldecode($str);
preg_match_all('#%u.{4}|&#x.{4};|&#\d+;|&#\d+?|.+#U', $str, $r);
$ar = $r[0];
foreach ($ar as $k => $v)
{
if (substr($v, 0, 2) == "%u")
{
$ar[$k] = iconv("UCS-2BE", $encode, pack("H4", substr($v, -4)));
}
elseif (substr($v, 0, 3) == "&#x")
{
$ar[$k] = iconv("UCS-2BE", $encode, pack("H4", substr($v, $substrStrNum, -1)));
}
elseif (substr($v, 0, 2) == "&#")
{
$ar [$k] = iconv ( "UCS-2BE", $encode, pack ( "n", preg_replace ( '#[^\d]#', '', $v ) ) );
}
}
return join ('', $ar);
}