function Phpescape ($STR) {
$sublen =strlen ($STR);
$restring = "";
for ($i =0; $i < $sublen; $i + +) {
if (Ord ($str [$i]) >=127) {
$tmps Tutorial Tring=bin2hex (Iconv ("Utf-8", "Ucs-2", substr ($str, $i, 2));
if (!eregi ("Win", Php_os)) {
$tmpstring =substr ($tmpstring, 2,2). substr ($tmpstring, 0,2);
}
$restring. = "%u". $tmpstring;
$i + +;
} else {
$restring. = "%" Dechex (ord ($str [$i]);
}
}
return $restring;
}
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", "Utf-8", 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);
}
function Escape ($STR) {
Preg_match_all ("/[x80-xff].| [x01-x7f]+/", $str, $r);
$ar = $r [0];
foreach ($ar as $k => $v) {
if (Ord ($v [0]) < 128)
$ar [$k] = Rawurlencode ($v);
Else
$ar [$k] = "%u". Bin2Hex (Iconv ("gb2312", "ucs-2", $v));
}
return join ("", $ar);
}
The
function unescape ($str) {
$str = Rawurldecode ($STR);
Preg_match_all ("/(?:%u.{4}) |. +/", $str, $r);
$ar = $r [0];
foreach ($ar as $k => $v) {
if (substr ($v, 0,2) = = "%u" && strlen ($v) = 6)
$ar [$k] = Iconv ("Ucs-2", " gb2312 ", Pack (" H4 ", substr ($v,-4));
}
Return Join ("", $ar);
}