VCPHP网站模板 - 外贸网站建设,外贸网站模板

VCPHP网站模板

当前位置: 首页 > 建站教程 > php教程 >

javascript unescape() escape() 字符编码解码函数

时间:2014-06-09 16:40来源: 作者: 点击:
escape()函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。 语法: escape(string) 参数: string 必需, 描述: 要被转义或编码的字符串。 返回值: 已编码的 string 的副本。其

escape()函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

语法:escape(string) 参数:string 必需,描述:要被转义或编码的字符串。

返回值:已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列

  1. function phpescape($str)  
  2. {  
  3.          $sublen=strlen($str);  
  4.          $retrunstring="";  
  5.          for ($i=0;$i<$sublen;$i++)  
  6.          {  
  7.                   if(ord($str[$i])>=127)  
  8.                   {  
  9.                            $tmpstring=bin2hex(iconv("gb2312","ucs-2",substr($str,$i,2)));  
  10.                            //$tmpstring=substr($tmpstring,2,2).substr($tmpstring,0,2);window下可能要打开此项  
  11.                            $retrunstring.="%u".$tmpstring;  
  12.                            $i++;  
  13.                   } else {  
  14.                            $retrunstring.="%".dechex(ord($str[$i]));  
  15.                   }  
  16.          }  
  17.          return $retrunstring;  
  18. }  

unescape() 函数可对通过 escape() 编码的字符串进行解码。

语法:unescape(string)参数:string 必需,描述:要解码或反转义的字符串。

返回值:string 被解码后的一个副本。

说明:该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 unicode 字符 u00xx 和 uxxxx 替换这样的字符序列进行解码。

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

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
栏目列表
推荐内容
 
QQ在线咨询
售前电话热线
400-083-8184
售前QQ客服