js中的escape及unescape函数的php实现

80酷酷网    80kuku.com

  js|函数

  • <?    
    function phpescape($str
    )
    {
             
    $sublen=strlen($str
    );
             
    $retrunString=""
    ;
             for (
    $i=0;$i<$sublen;$i
    ++)
             {
                      if(
    ord($str[$i])>=127
    )
                      {
                               
    $tmpString=bin2hex(iconv("gb2312","ucs-2",substr($str,$i,2
    )));
                               
    //$tmpString=substr($tmpString,2,2).substr($tmpString,0,2);window下可能要打开此项
                               
    $retrunString.="%u".$tmpString
    ;
                               
    $i
    ++;
                      } else {
                               
    $retrunString.="%".dechex(ord($str[$i
    ]));
                      }
             }
             return 
    $retrunString
    ;

    function 
    unescape($str
    ) {
             
    $str rawurldecode($str
    );
             
    preg_match_all("/%u.{4}|&#x.{4};|&#\d+;|.+/U",$str,$r
    );
             
    $ar $r[0
    ];
             foreach(
    $ar as $k=>$v
    ) {
                      if(
    substr($v,0,2) == "%u"
    )
                               
    $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,-4
    )));
                      elseif(
    substr($v,0,3) == "&#x"
    )
                               
    $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1
    )));
                      elseif(
    substr($v,0,2) == "&#"
    ) {
                               
    $ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1
    )));
                      }
             }
             return 
    join("",$ar
    );
    }    
    ?>


  • 分享到
    • 微信分享
    • 新浪微博
    • QQ好友
    • QQ空间
    点击: