教你如何用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 url路由入门实例
Apr 23 PHP
php解析json数据实例
Aug 19 PHP
详解PHP中的Traits
Jul 29 PHP
PHP下的浮点运算不准的解决方法
Oct 27 PHP
Zend Framework入门教程之Zend_Session会话操作详解
Dec 08 PHP
PHP利用二叉堆实现TopK-算法的方法详解
Apr 24 PHP
Django 中 cookie的使用
Aug 17 PHP
Laravel下生成验证码的类
Nov 15 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
php适配器模式简单应用示例
Oct 23 PHP
Laravel监听数据库访问,打印SQL的例子
Oct 24 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数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
2019/10/22 PHP
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
自定义ExtJS控件之下拉树和下拉表格附源码
2013/10/15 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
javascript实例--教你实现扑克牌洗牌功能
2014/05/15 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
2019/04/23 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
vue图片上传组件使用详解
2019/12/23 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
Unicode和Python的中文处理
2017/03/19 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
Python制作exe文件简单流程
2019/01/24 Python
Python用字典构建多级菜单功能
2019/07/11 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
优秀的茶餐厅创业计划书
2014/01/03 职场文书
《乡愁》教学反思
2014/02/18 职场文书
打架检讨书2000字
2014/02/22 职场文书
庆祝儿童节标语
2014/10/09 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
入党转正申请书范文
2019/05/20 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书