亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP實現Javascript中的escape及unescape函數代碼分享

2024-09-04 11:42:52
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP實現Javascript中的escape及unescape函數代碼分享,本文給出兩個實現版本,需要的朋友可以參考下

這個類相當好用.作用么,PHP做JSON傳遞GBK字符,比如中文,日文,韓文神馬的Unicode最合適不過了..

  1. <?php 
  2. classcoding 
  3.   //模仿JAVASCRIPT的ESCAPE和UNESCAPE函數的功能  
  4.   functionunescape($str
  5.   { 
  6.     $text=preg_replace_callback("/%u[0-9A-Za-z]{4}/",array
  7.       &$this
  8.       'toUtf8' 
  9.     ),$str); 
  10.     returnmb_convert_encoding($text,"gb2312","utf-8"); 
  11.   } 
  12.     
  13.   functiontoUtf8($ar
  14.   { 
  15.     foreach($aras$val){ 
  16.       $val=intval(substr($val,2),16); 
  17.       if($val<0x7F){// 0000-007F  
  18.         $c.=chr($val); 
  19.       }elseif($val<0x800){// 0080-0800  
  20.         $c.=chr(0xC0|($val/64)); 
  21.         $c.=chr(0x80|($val%64)); 
  22.       }else{// 0800-FFFF  
  23.         $c.=chr(0xE0|(($val/64)/64)); 
  24.         $c.=chr(0x80|(($val/64)%64)); 
  25.         $c.=chr(0x80|($val%64)); 
  26.       } 
  27.     } 
  28.     return$c
  29.   } 
  30.     
  31.   functionescape($string,$encoding='gb2312'
  32.   { 
  33.     $return=''
  34.     for($x=0;$x<mb_strlen($string,$encoding);$x++){ 
  35.       $str=mb_substr($string,$x,1,$encoding); 
  36.       if(strlen($str)>1){// 多字節字符  
  37.         $return.='%u'.strtoupper(bin2hex(mb_convert_encoding($str,'UCS-2',$encoding))); 
  38.       }else
  39.         $return.='%'.strtoupper(bin2hex($str)); 
  40.       } 
  41.     } 
  42.     return$return
  43.   } 
  44.     
  45.   functiongb2utf8($string,$encoding='utf-8',$from_encode='gb2312'
  46.   { 
  47.     returnmb_convert_encoding($string,$encoding,$from_encode); 
  48.   } 
  49.     
  50. ?> 

google code 上找到的另外一個類似腳本

  1. <?php 
  2.    
  3.     functionphpescape($str
  4.     { 
  5.         $sublen=strlen($str); 
  6.         $retrunString=""
  7.         for($i=0;$i<$sublen;$i++) 
  8.         { 
  9.             if(ord($str[$i])>=127) 
  10.             { 
  11.                 $tmpString=bin2hex(iconv("gbk","ucs-2",substr($str,$i,2))); 
  12.                 $tmpString=substr($tmpString,2,2).substr($tmpString,0,2); 
  13.                 $retrunString.="%u".$tmpString
  14.                 $i++; 
  15.             }else
  16.                 $retrunString.="%".dechex(ord($str[$i])); 
  17.             } 
  18.         } 
  19.         return$retrunString
  20.     } 
  21.    
  22.    
  23.     functionescape($str
  24.     { 
  25.         preg_match_all("/[/x80-/xff].|[/x01-/x7f]+/",$str,$r); 
  26.         $ar=$r[0]; 
  27.         foreach($aras$k=>$v
  28.         { 
  29.             if(ord($v[0])<128) 
  30.                 $ar[$k]=rawurlencode($v); 
  31.             else 
  32.                 $ar[$k]="%u".bin2hex(iconv("UTF-8","UCS-2",$v)); 
  33.         } 
  34.         returnjoin("",$ar); 
  35.     } 
  36.    
  37.     functionphpunescape($source
  38.     { 
  39.         $decodedStr=""
  40.         $pos=0; 
  41.         $len=strlen($source); 
  42.           
  43.         while($pos<$len
  44.         { 
  45.             $charAt=substr($source,$pos,1); 
  46.             if($charAt=='%'
  47.             { 
  48.                 $pos++; 
  49.                 $charAt=substr($source,$pos,1); 
  50.                 if($charAt=='u'
  51.                 { 
  52.                     // we got a unicode character  
  53.                     $pos++; 
  54.                     $unicodeHexVal=substr($source,$pos,4); 
  55.                     $unicode=hexdec($unicodeHexVal); 
  56.                     $entity="&#".$unicode.';'
  57.                     $decodedStr.=utf8_encode($entity); 
  58.                     $pos+=4; 
  59.                 }else
  60.                     // we have an escaped ascii character  
  61.                     $hexVal=substr($source,$pos,2); 
  62.                     $decodedStr.=chr(hexdec($hexVal)); 
  63.                     $pos+=2; 
  64.                 } 
  65.             }else
  66.                 $decodedStr.=$charAt
  67.                 $pos++; 
  68.             } 
  69.         } 
  70.         return$decodedStr
  71.     } 
  72.       
  73.       
  74.     functionunescape($str
  75.     { 
  76.         $str=rawurldecode($str); 
  77.         preg_match_all("/(?:%u.{4})|&#x.{4};|&#/d+;|.+/U",$str,$r); 
  78.         $ar=$r[0]; 
  79.         #print_r($ar); 
  80.         foreach($aras$k=>$v
  81.         { 
  82.             if(substr($v,0,2)=="%u"
  83.                 $ar[$k]=iconv("UCS-2","UTF-8",pack("H4",substr($v,-4))); 
  84.             elseif(substr($v,0,3)=="&#x"
  85.                 $ar[$k]=iconv("UCS-2","UTF-8",pack("H4",substr($v,3,-1))); 
  86.             elseif(substr($v,0,2)=="&#"
  87.             { 
  88.                 //echo substr($v,2,-1).""; 
  89.                 $ar[$k]=iconv("UCS-2","UTF-8",pack("n",substr($v,2,-1))); 
  90.             } 
  91.         } 
  92.         returnjoin("",$ar); 
  93.     } 
  94.    
  95. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩欧美影视| 日韩精品日韩在线观看| 91久热免费在线视频| 久久精品国产亚洲一区二区| 国产一区二区三区在线视频| 中文字幕一区二区精品| 国产精品自产拍在线观| 国产日韩欧美夫妻视频在线观看| 96精品视频在线| 538国产精品一区二区免费视频| 91在线视频免费| 精品无人国产偷自产在线| 国产ts人妖一区二区三区| 精品久久香蕉国产线看观看亚洲| 亚洲一区二区免费| 欧美日韩一二三四五区| 亚洲欧洲午夜一线一品| 中文字幕欧美在线| 欧美激情精品久久久久久大尺度| 久久伊人精品视频| 精品国产91久久久| 久久精品最新地址| 亚洲网在线观看| 欧美日韩中文字幕综合视频| 亚洲一区二区三区视频| 在线色欧美三级视频| 91九色国产在线| 97人人爽人人喊人人模波多| 国产精品xxx视频| 91视频国产精品| 欧美在线观看一区二区三区| 91av网站在线播放| 亚洲午夜国产成人av电影男同| 在线观看视频99| 国产日本欧美一区二区三区| 萌白酱国产一区二区| 国产精品91一区| 欧美国产欧美亚洲国产日韩mv天天看完整| 97av在线播放| 日本一区二区三区四区视频| 狠狠色狠狠色综合日日小说| 国产视频自拍一区| 日韩高清免费在线| 日韩在线视频线视频免费网站| 福利视频导航一区| 欧美性猛交xxxx黑人猛交| 91青草视频久久| 92福利视频午夜1000合集在线观看| 国产精品亚洲激情| 亚洲精品视频中文字幕| 欧美另类在线播放| 欧美日韩久久久久| 国产精品白丝jk喷水视频一区| 久久影视电视剧免费网站| 亚洲**2019国产| 国产精品日日做人人爱| 91黑丝高跟在线| 亚洲aⅴ男人的天堂在线观看| 狠狠操狠狠色综合网| 亚洲石原莉奈一区二区在线观看| 欧美性猛交xxxx黑人猛交| 成人精品在线视频| 黑人极品videos精品欧美裸| 中文字幕亚洲色图| 成人黄色av网| 亚洲女人被黑人巨大进入| 亚洲第一区中文99精品| 亚洲高清久久久久久| 欧美国产精品人人做人人爱| 在线观看精品自拍私拍| 国产精品一区av| 精品日韩中文字幕| 欧美精品日韩www.p站| 午夜精品福利视频| 国产91精品青草社区| 欧美黑人一区二区三区| 98精品国产自产在线观看| 性欧美在线看片a免费观看| 久久久久久亚洲精品| 2020国产精品视频| 青青精品视频播放| 日韩av片永久免费网站| 日韩高清av一区二区三区| 亚洲裸体xxxx| 欧美黑人性视频| 亚洲а∨天堂久久精品喷水| 欧美一区在线直播| 成人免费网站在线看| 成人在线中文字幕| 国产精品一区二区在线| 日本一区二区三区四区视频| 国内精久久久久久久久久人| 成人综合国产精品| 92福利视频午夜1000合集在线观看| 欧美日韩成人黄色| 国产精品日韩精品| 日韩精品视频中文在线观看| 97在线视频免费播放| 国产不卡精品视男人的天堂| 琪琪第一精品导航| 日本韩国欧美精品大片卡二| 国外视频精品毛片| 亚洲国产又黄又爽女人高潮的| 日韩在线小视频| 久久久久久com| 国产精品99久久久久久久久久久久| 欧美精品久久久久久久久久| 一色桃子一区二区| 国产精品香蕉国产| 亚洲日韩欧美视频一区| 成人在线视频网| 亚洲毛茸茸少妇高潮呻吟| 中文字幕久久久| 国产午夜精品美女视频明星a级| 精品久久久久久电影| 亚洲免费视频网站| 国产精品入口免费视| 国产精品视频最多的网站| 欧美性色视频在线| 91免费福利视频| 亚洲色在线视频| 亚洲男人第一av网站| 欧美激情亚洲激情| 成人福利视频在线观看| 在线观看精品自拍私拍| 成人性生交大片免费看视频直播| 日韩精品丝袜在线| 国产成人精品日本亚洲专区61| 国产精品免费视频xxxx| 欧美日韩国产精品专区| 国产精品一区二区女厕厕| 亚洲free性xxxx护士hd| 欧美尤物巨大精品爽| 一道本无吗dⅴd在线播放一区| 精品一区二区三区四区| 91精品国产自产91精品| 亚洲黄色av女优在线观看| 国产精品jvid在线观看蜜臀| 奇米四色中文综合久久| www日韩中文字幕在线看| 欧美日韩ab片| 岛国精品视频在线播放| 亚洲电影免费观看| 国产精品久久久久久中文字| 亚洲欧洲午夜一线一品| 欧美激情网站在线观看| 国产精品久久电影观看| 亚洲国产欧美一区二区三区久久| 欧美在线日韩在线| 亚洲а∨天堂久久精品9966| 国产免费亚洲高清| 最近2019年中文视频免费在线观看| 日韩中文字幕久久| 欧美午夜精品久久久久久人妖| 综合网中文字幕| 欧美日韩中文在线| 美女av一区二区| 青草青草久热精品视频在线观看| 日产精品久久久一区二区福利| 欧美高清视频免费观看| 在线亚洲男人天堂| 在线亚洲国产精品网| 岛国av午夜精品| 亚洲成人亚洲激情|