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

首頁 > 開發 > PHP > 正文

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

2024-05-04 23:31:09
字體:
來源:轉載
供稿:網友

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

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

 

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

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

 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91在线免费看网站| 日韩专区在线播放| 国产69久久精品成人| 九九热这里只有精品6| 在线免费看av不卡| 国产99视频在线观看| 日本最新高清不卡中文字幕| 久久久久久免费精品| 国产mv久久久| 欧洲s码亚洲m码精品一区| 亚洲第一精品电影| 亚洲视频一区二区| 伦伦影院午夜日韩欧美限制| 色哟哟入口国产精品| 欧美国产精品人人做人人爱| 夜夜嗨av色综合久久久综合网| 国产ts人妖一区二区三区| 日韩av影视综合网| 欧美高清电影在线看| 久久精品国产一区| 亚洲免费av电影| 中文字幕亚洲欧美在线| 国产精品一区二区在线| 欧美精品成人在线| 日韩成人在线视频| 日韩在线视频二区| 伊人伊成久久人综合网小说| 日本精品一区二区三区在线| 亚洲片av在线| 一区二区三区天堂av| 中文字幕日韩精品在线| 国产成人一区二区| 久久久亚洲成人| 国产一区二区av| 国产69精品久久久久9999| 亚洲精品国产精品国产自| 午夜精品一区二区三区在线| 俺也去精品视频在线观看| 亚洲美女又黄又爽在线观看| 欧美成人午夜视频| 欧美一区在线直播| 51ⅴ精品国产91久久久久久| 青草青草久热精品视频在线观看| 国产精品麻豆va在线播放| 国产在线拍偷自揄拍精品| 精品亚洲aⅴ在线观看| 欧美日本高清一区| 中文字幕久精品免费视频| 欧美日韩性视频| 亚洲一区二区在线| 成人亲热视频网站| 一本色道久久88精品综合| 亚洲电影免费观看高清完整版在线| 亚洲女人被黑人巨大进入al| 中文字幕精品国产| 久久综合伊人77777尤物| 欧美成人全部免费| 国产精品96久久久久久| 91av在线播放| 亚洲精品福利免费在线观看| 国产成人午夜视频网址| 一区二区亚洲欧洲国产日韩| 91精品国产综合久久男男| 国产精品私拍pans大尺度在线| 欧美性猛交xxxx免费看久久久| 久久天堂av综合合色| 成人亚洲欧美一区二区三区| 国产精品一区久久久| 丁香五六月婷婷久久激情| 97在线视频免费观看| 美女撒尿一区二区三区| 久久久久久久久久久91| 成人午夜高潮视频| 亚洲欧美日韩国产中文专区| 精品国产精品自拍| 日本精品免费一区二区三区| 欧美肥老妇视频| 亚洲人在线观看| 亚洲精品乱码久久久久久金桔影视| 狠狠色香婷婷久久亚洲精品| 亚洲精品国产欧美| 91精品国产免费久久久久久| 97av视频在线| 国产日韩欧美在线播放| 国产日产久久高清欧美一区| 91国偷自产一区二区三区的观看方式| 国产91精品久久久久久| 国产97人人超碰caoprom| 国产精品久久久久久久久久| 欧美激情喷水视频| 欧美激情在线狂野欧美精品| 日韩毛片在线看| 午夜精品久久久久久99热软件| 亚洲欧美日韩中文在线制服| 欧美亚州一区二区三区| 97精品国产97久久久久久免费| 亚洲欧美激情视频| 成人精品久久一区二区三区| 国产成人激情小视频| 欧美电影在线观看| 精品露脸国产偷人在视频| 国产精品久久久精品| 久久男人av资源网站| 欧美激情中文网| 久久的精品视频| 欧美日韩国产色视频| 一区二区三区视频免费| 国产精品黄色影片导航在线观看| 欧美日韩亚洲精品内裤| 国产精品一区二区三区毛片淫片| 欧美最顶级丰满的aⅴ艳星| 久久成人人人人精品欧| 日韩av在线网页| 国产精品丝袜一区二区三区| 久久精品国产一区| 久久91精品国产91久久跳| 最近中文字幕日韩精品| 久色乳综合思思在线视频| 亚洲a成v人在线观看| 91国自产精品中文字幕亚洲| 九九视频这里只有精品| 亚洲第一精品自拍| 久久久久久国产精品三级玉女聊斋| 国产亚洲免费的视频看| 亚洲精品v欧美精品v日韩精品| 97免费视频在线| 国产成人a亚洲精品| 国产精品尤物福利片在线观看| 欧美人与性动交| 久久免费成人精品视频| 久久久人成影片一区二区三区观看| 亚洲欧洲日产国产网站| 日韩在线观看免费全集电视剧网站| 欧美在线一级va免费观看| 97视频在线观看免费高清完整版在线观看| 欧美精品在线视频观看| 韩国精品美女www爽爽爽视频| 这里只有精品丝袜| 久久久精品欧美| 精品久久久视频| 国产有码在线一区二区视频| 国产亚洲视频在线| 国产香蕉97碰碰久久人人| 国产一区二区动漫| 国产精品久在线观看| 国产精品视频男人的天堂| 国产精品福利久久久| 久久精品一区中文字幕| 亚洲欧美成人一区二区在线电影| 亚洲精品一区二三区不卡| 亚洲精品一区二区网址| 亚洲欧美精品一区| 日韩欧美一区二区在线| 日韩欧美中文字幕在线观看| 日韩av网站电影| 色婷婷成人综合| 九九热最新视频//这里只有精品| 国产一区二区成人| 日本高清视频精品| 国产成人高潮免费观看精品| 国产精品第10页| 欧美尺度大的性做爰视频| 91免费在线视频| 亚洲大胆美女视频|