php实现escape和Unescape方法

来源:互联网 发布:百度人怎么看百度 知乎 编辑:程序博客网 时间:2024/05/16 03:04
functionescape($str) {
   preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
    $ar =$r[0];
    foreach($ar as$k=>$v) {
       if(ord($v[0])< 128)
          $ar[$k] = rawurlencode($v);
       else
          $ar[$k] ="%u".bin2hex(iconv("GB2312","UCS-2",$v));
   }
    returnjoin("",$ar);
}

function Un_escape($str){
    $str =rawurldecode($str); 
   preg_match_all("/(?:%u.{4})|.+/",$str,$r);
    $ar =$r[0];
    foreach($ar as$k=>$v) {
       if(substr($v,0,2) == "%u"&& strlen($v) ==6) 
$ar[$k] =iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
   }
    returnjoin("",$ar);
}
0 0