用于解析通过JS的escape函数加密过的数据

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

 

posted @ 2018-03-31 16:19  Liu66~  阅读(215)  评论(0编辑  收藏  举报