教你如何用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 相关文章推荐
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 PHP
PHP 文件上传功能实现代码
Jun 24 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
Yii2中使用asset压缩js,css文件的方法
Nov 24 PHP
PHP错误处理函数register_shutdown_function使用示例
Jul 03 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
Laravel5.5新特性之友好报错以及展示详解
Aug 13 PHP
PHP设计模式之注册树模式分析
Jan 26 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
用PHP的反射实现委托模式的讲解
Mar 22 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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设计模式 Strategy(策略模式)
2011/06/26 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
js 文本滚动效果的实例代码
2013/08/17 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
js验证上传图片的方法
2015/05/12 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
Javascript 调用 ActionScript 的简单方法
2016/09/22 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
js面向对象之实现淘宝放大镜
2020/01/15 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
python创建列表并给列表赋初始值的方法
2015/07/28 Python
python批量制作雷达图的实现方法
2016/07/26 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
Pytorch 实现自定义参数层的例子
2019/08/17 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Python 去除字符串中指定字符串
2020/03/05 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
Python连接mysql数据库及简单增删改查操作示例代码
2020/08/03 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
表达自我的市场:Society6
2018/08/01 全球购物
哈弗商学院毕业生求职信
2014/02/26 职场文书
体育系毕业生自荐信
2014/06/28 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书
python glom模块的使用简介
2021/04/13 Python
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android