程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 教你如何用php實現LOL數據遠程獲取

教你如何用php實現LOL數據遠程獲取

編輯:關於PHP編程

過幾天網站就要上線了。

最近完成了一個小功能,就是LOL數據獲取,

比如:我給你一個號,你把這個號是否打過排位?戰斗力是多少?勝率和所在的總場數數據獲取過來

數據都在多玩的網站上可查,所以該做的功能就是遠程抓取。

功能沒啥亮點,就是簡單的實現。

反正就是JS不能跨域,然後用PHP去跨域,用file_get_content好類或者是curl好,都不重要。重要是的能理解業務流程。

上面這個圖就是執行業務流程圖。清楚流程了,然後代碼就好寫了

當然說了,這裡就,重點是PHP怎麼去抓取數據的。

這裡要介紹一款非常好的PHP類,Simple_html_dom(自行百度獲取文檔)

復制代碼 代碼如下:
public function getData(){
    $server = isset($_POST['gameserver'])?trim($_POST['gameserver']):NULL;
    $name = isset($_POST['gamename'])?trim($_POST['gamename']):NULL;
    import("@.ORG.SimpleHtmlDom");       //數據抓取類
        $url = "http://lolbox.duowan.com/playerDetail.php?serverName=".urlencode($server)."&playerName=".urlencode($name);
        $html = file_get_html($url);
        $dom = $html->find('.fighting',0)->children(1);
        $result['zdl'] =  strip_tags($dom->innertext);
        $doms = $html->find('.J_content',0)->children(1);
        //echo $html->find("#ranked_tier",0)->innertext;
        $temp =  $doms->plaintext;
        $tempArray = explode(" ",trim($temp));
        foreach($tempArray as $key=>$value)
        {
            if(!empty($value))
            {
                $tempArr[] = trim($value);
            }
        }
        unset($tempArray);
        //獲取排位類型
        $pwtype = $tempArr[8];
        $pwtotal = $tempArr[12];
        $pwsl = $tempArr[14];
        if($pwtype == "5v5單雙排")
        {
            $result['pw'] = $pwtotal;
            $result['pwsl'] = $pwsl;
        }else{
            $result['pw'] = "0";
            $result['pwsl'] = "0";
        }

         $this->ajaxReturn($result) ;
}

上面這些代碼,暴露了哥英語過了四級但還是硬傷的BUG。
上面這個類很簡單,難點在於怎麼去分析多玩查詢頁面的數據。用firebug看看吧。
寫多了,你就知道的了。當然了,你想查詢rank隱藏分數,也是可以滴,不過要去馬化騰網站去獲取數據了,這裡就不詳細說明了,提供個思路就可以了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved