教你如何用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获得用户使用的代理服务器ip即真实ip
Dec 31 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
Apr 26 PHP
php解析url的三个示例
Jan 20 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
Laravel 4.2 中队列服务(queue)使用感受
Oct 30 PHP
php通过asort()给关联数组按照值排序的方法
Mar 18 PHP
php 无限级分类 获取顶级分类ID
Mar 13 PHP
PHP实现的方程求解示例分析
Nov 11 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
详解php与ethereum客户端交互
Apr 28 PHP
PHP正则匹配到2个字符串之间的内容方法
Dec 24 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 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
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
跟我学Laravel之视图 & Response
2014/10/15 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
JavaScript 调试器简介
2009/02/21 Javascript
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
基于jQuery的模仿新浪微博时间的组件
2011/10/04 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
环境科学专业大学生自荐信格式
2013/09/21 职场文书
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
献爱心大型公益活动策划方案
2014/09/15 职场文书
个人投资合作协议书
2014/10/12 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
仙境之桥观后感
2015/06/16 职场文书
回复函范文
2015/07/14 职场文书