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