包含 函数 标签的文章

PHP的unescape()函数

昨天把自己的留言本后台回复改成AJAX无刷新的时候POST数据到服务器端中文总是乱码,郁闷的很~后来在网上查了一下才知道 JavaScript 用 XmlHTTP POST数据时中文是被当成 UTF-8 编码发送出去的,一个解决的方法是在客户端把中文用 JavaScript 的 escape() 函数编码了再到服务器端解码,可是在服务器端怎么解码呢,那就看下面一段我从网上找到的 PHP 中和 JavaScript 的 unescape() 函数功能一样的解码函数吧(这句话怎么听着有点别扭??)

PHP代码
  1. function unescape($str){   
  2.  $str = rawurldecode($str);    
  3.  preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/U",$str,$r);    
  4.  $ar = $r[0];   
  5.  foreach($ar as $k=>$v){   
  6.   if(substr($v,0,2) == "%u"){   
  7.    $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,-4)));   
  8.    }elseif(substr($v,0,3) == "&#x"){   
  9.    $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1)));   
  10.    }elseif(substr($v,0,2) == "&#"){   
  11.    $ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1)));   
  12.   }   
  13.  }   
  14.  return join("",$ar);   
  15. }