教你如何用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 syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
php多层数组与对象的转换实例代码
Aug 05 PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 PHP
php实现MySQL数据库备份与还原类实例
Dec 09 PHP
php中异常处理方法小结
Jan 09 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 PHP
php使用Imagick生成图片的方法
Jul 31 PHP
9个比较实用的php代码片段
Mar 15 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
Apr 25 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
Jun 12 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中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
WAF的正确bypass
2017/01/05 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
由document.body和document.documentElement想到的
2009/04/13 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
jquery判断输入密码两次是否相等
2020/04/22 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
python3+PyQt5泛型委托详解
2018/04/24 Python
pandas 将索引值相加的方法
2018/11/15 Python
python实现图书借阅系统
2019/02/20 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
python SVM 线性分类模型的实现
2019/07/19 Python
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
岗位职责定义及内容
2013/11/08 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
刑事代理授权委托书
2014/09/17 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
甲午大海战观后感
2015/06/02 职场文书
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏