教你如何用php实现LOL数据远程获取


Posted in PHP onJune 10, 2014

过几天网站就要上线了。

最近完成了一个小功能,就是LOL数据获取,

比如:我给你一个号,你把这个号是否打过排位?战斗力是多少?胜率和所在的总场数数据获取过来

数据都在多玩的网站上可查,所以该做的功能就是远程抓取。

教你如何用php实现LOL数据远程获取

功能没啥亮点,就是简单的实现。

反正就是JS不能跨域,然后用PHP去跨域,用file_get_content好类或者是curl好,都不重要。重要是的能理解业务流程。

教你如何用php实现LOL数据远程获取

上面这个图就是执行业务流程图。清楚流程了,然后代码就好写了

当然说了,这里就,重点是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隐藏分数,也是可以滴,不过要去马化腾网站去获取数据了,这里就不详细说明了,提供个思路就可以了

PHP 相关文章推荐
很好用的PHP数据库类
May 27 PHP
php中的常用魔术方法总结
Aug 02 PHP
php通过数组实现多条件查询实现方法(字符串分割)
May 06 PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 PHP
php基于双向循环队列实现历史记录的前进后退等功能
Aug 08 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
Oct 09 PHP
php常量详细解析
Oct 27 PHP
ThinkPHP框架安全实现分析
Mar 14 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
Mar 21 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
Nov 16 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 PHP
PHP面向对象教程之自定义类
Jun 10 #PHP
微信营销平台系统?刮刮乐的开发
Jun 10 #PHP
百度地图API应用之获取用户的具体位置
Jun 10 #PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 #PHP
一个严格的PHP Session会话超时时间设置方法
Jun 10 #PHP
解决CodeIgniter伪静态失效
Jun 09 #PHP
CI(CodeIgniter)框架介绍
Jun 09 #PHP
You might like
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
php session 预定义数组
2009/03/16 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
js 走马灯简单实例
2013/11/21 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
Django发送html邮件的方法
2015/05/26 Python
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
利用python代码写的12306订票代码
2015/12/20 Python
Python正则简单实例分析
2017/03/21 Python
Random 在 Python 中的使用方法
2018/08/09 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
《北大荒的秋天》教学反思
2014/04/14 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
学雷锋活动简报
2015/07/20 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL
python如何利用traceback获取详细的异常信息
2021/06/05 Python
Golang入门之计时器
2022/05/04 Golang