![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
网上流行的那个有点问题 基本不能用 我修改了下 大家帮忙看看还有什么问题了
[php]<?php
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,2,2).substr($tmpString,0,2);window下可能要打开此项
if (strlen($tmpString)==1)
{
$retrunString.="%u000".$tmpString;
}
elseif(strlen($tmpString)==2)
{
$retrunString.="%u00".$tmpString;
}
elseif(strlen($tmpString)==3)
{
$retrunString.="%u0".$tmpString;
}
else
{
$retrunString.="%u".$tmpString;
}
$i++;
} else {
$tmpString=dechex(ord($str[$i]));
if (strlen($tmpString)==1)
{
$retrunString.="%0".$tmpString;
}
else
{
$retrunString.="%".$tmpString;
}
}
}
return $retrunString;
}
function phpunescape($str)
{
$str = rawurldecode($str);
preg_match_all("/%u.{4}|.{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) == "")
$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);
}
?>[/php]

