閱讀609 返回首頁    go 火車采集器


PHP對escape的字符串進行解密

PHP對escape的字符串進行解密

作者:小文 發布於:2010-8-28 12:53 Saturday 分類:其它資源

Escape是js 腳本的一種加密字符串的方式.具體詳情可以參見https://www.w3school.com.cn/js/jsref_unescape.asp

有的網站會將中文字進行Escape編碼,然後在顯示時用unescape再進行轉換.比如有這麼一段代碼

<title>廣州公交查詢-由%u91D1%u6CFD%u5927%u53A6到%u767E%u5F81%u79D1%u6280%u5927%u53A6的乘車路線</title>

這個是經過Escape編碼的.我們需要在PHP中將其解密.在網上搜索後,得到加密和解密代碼.

<?php

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);
}

function phpescape($str){//這個是加密用的
    preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$newstr);
    $ar = $newstr[0];
    foreach($ar as $k=>$v){
        if(ord($ar[$k])>=127){
            $tmpString=bin2hex(iconv("GBK","ucs-2",$v));
            if (!eregi("WIN",PHP_OS)){
                $tmpString = substr($tmpString,2,2).substr($tmpString,0,2);
            }
            $reString.="%u".$tmpString;
        } else {
            $reString.= rawurlencode($v);
        }
    }
    return $reString;
}

?>

我們測試一下

echo unescape("由%u91D1%u6CFD%u5927%u53A6到%u767E%u5F81%u79D1%u6280%u5927%u53A6的乘車路線");

可以得到  由金澤大廈到百征科技大廈的乘車路線

標簽: escape unescape php

相關日誌:

引爆雙十一,火車采集器買一送一 僅限當天!!

火車采集器V9助力大數據時代:抓住數據搶占機遇

需要登陸網站的采集方法(視頻教程)

V8方維分享係統發布擴展(最後更新2013.7.2)

使用分頁采集Qvod播放地址(語音教程,帶規則)

« 超級QQ群八月份獎勵 | Html實體字符轉換»

評論:

www.120center.com
2013-08-17 14:23
怎麼把它弄進PHP插件裏去應用呢?為什麼沒有更詳細的使用方法
小文
2013-08-19 10:34
@www.120center.com:這些最基本的php知識,需要用戶自行解決。
www.ad-mart.cn
2011-09-22 09:10
一點點的來學習這個!
young
2010-08-31 15:43
謝謝小文,小文辛苦了。

發表評論:

最後更新:2017-05-09 00:27:02

  上一篇:go Discuz 7.2 免登陸帖子發布接口(2010.11.5)
  下一篇:go 超級QQ群八月份獎勵