Programming Life
相信不能相信的,完成不能完成的。矛盾,就象征进步。
posts - 151,comments - 7,trackbacks - 0
 1 <?php
 2 function escape($str) {  
 3  preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);  
 4  $ar = $r[0];  
 5  foreach($ar as $k=>$v) {  
 6    if(ord($v[0]) < 128)  
 7      $ar[$k= rawurlencode($v);  
 8    else  
 9      $ar[$k= "%u".bin2hex(iconv("GB2312","UCS-2",$v));  
10  }  
11  return join("",$ar);  
12 }  
13 function unescape($str) {  
14  $str = rawurldecode($str);  
15  preg_match_all("/(?:%u.{4})|.+/",$str,$r);  
16  $ar = $r[0];  
17  foreach($ar as $k=>$v) {  
18    if(substr($v,0,2== "%u" && strlen($v== 6)  
19      $ar[$k= iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));  
20  }  
21  return join("",$ar);  
22 }
23 
24 
25 $a="\u4e2d\u897f\u533a";
26 $a=str_replace('\\','%',$a);
27 echo unescape($a);
28 ?>
posted on 2007-11-27 00:23 Prog 阅读(778) 评论(1)  编辑 收藏 引用 网摘 所属分类: PHP

FeedBack:
# re: PHP下自定义模仿JS的 escape和unescape函数
2008-07-20 11:02 | 鸟生鱼汤
楼主真是高手!
好用,收藏!  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: