<?
Function phpescape ($ str)
{
$ Sublen = strlen ($ str );
$ RetrunString = "";
For ($ I = 0; $ I <$ sublen; $ I ++)
{
If (ord ($ str [$ I]) >= 127)
{
$ TmpString = bin2hex (iconv ("gb2312", "ucs-2", substr ($ str, $ I, 2 )));
// $ TmpString = substr ($ tmpString,). substr ($ tmpString,); this option may be enabled in window
$ RetrunString. = "% u". $ tmpString;
$ I ++;
} Else {
$ RetrunString. = "%". dechex (ord ($ str [$ I]);
}
}
Return $ retrunString;
}
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", "GBK", pack ("H4", substr ($ v,-4 )));
Elseif (substr ($ v, 0, 3) = "& # x ")
$ Ar [$ k] = iconv ("UCS-2", "GBK", pack ("H4", substr ($ v, 3,-1 )));
Elseif (substr ($ v, 0, 2) = "&#"){
$ Ar [$ k] = iconv ("UCS-2", "GBK", pack ("n", substr ($ v, 2,-1 )));
}
}
Return join ("", $ ar );
}
?>