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;
}

针对\x类的加密字符串,可以将\x替换为%号然后使用上面的函数解密。

代码整理自:http://blog.csdn.net/ikmb/article/details/6627141

Related Posts: PHP-unescape函数 :