js中的escape及unescape函数的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下可能要打开此项

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

  }

  ?>