教你如何用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 相关文章推荐
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
Mar 28 PHP
PHP写MySQL数据 实现代码
Jun 15 PHP
PHP UTF8中文字符截断函数代码
Sep 11 PHP
PHP读取文件并可支持远程文件的代码分享
Oct 03 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
php fread读取文件注意事项
Sep 24 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
Laravel学习教程之model validation的使用示例
Oct 23 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 PHP
使用laravel指定日志文件记录任意日志
Oct 17 PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 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
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
PHP开发中常用的字符串操作函数
2011/02/08 PHP
php实现文件下载更能介绍
2012/11/23 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
Document对象内容集合(比较全)
2010/09/06 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
python如何将两个txt文件内容合并
2019/10/18 Python
Python字符串格式化输出代码实例
2019/11/22 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
超市开业庆典策划方案
2014/05/14 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
七年级上册生物的课件
2019/08/07 职场文书
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫
MySQL事务操作的四大特性以及并发事务问题
2022/04/12 MySQL
Echarts如何重新渲染实例详解
2022/05/30 Javascript
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android