PHP decoding JS using the escape transcoding function
/*** function and JS unescape function, decode the data after escape encoded * @param $str */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;} /*** function is JS escape PHP implementation * @param $string thE Sting want to be escaped* @param $in _encoding * @param $out _encoding */function Escape ($string, $in _encoding = ' UTF-8 ', $out _encoding = ' UCS-2 ') {$return = '; if (function_exists (' Mb_get_info ')) {for ($x = 0; $x < Mb_strlen ($string, $in _encoding); $x + +) { $str = Mb_substr ($string, $x, 1, $in _encoding); if (strlen ($STR) > 1) {//multibyte character $return. = '%u '. Strtoupper (Bin2Hex (mb_convert_encoding ($STR, $out _encoding, $in _encoding))); } else {$return. = '% '. Strtoupper (Bin2Hex ($STR)); }}} return $return;}