PHP小偷程序的设计与实现方法详解


Posted in PHP onOctober 15, 2016

本文实例讲述了PHP小偷程序的设计与实现方法。分享给大家供大家参考,具体如下:

其实自己一直想做一个内涵图片的网站,以前的想法是做一个CMS,然后自己上传一些图片。。

开始真这么做的,没什么动力。之后就放弃了,后来研究了一个CURL。反正还是把这个想法实现比较好。

用PHP盗图,就好比:穿着袜子穿凉鞋一样。虽然没问题,但看着确实蛋疼。

我先说一下我对PHP小偷程序的设计,PHP不支持多线程,这样就只能分先后顺序来做了

获取到目标网站的HTML页面+解析HTML页面获取到图片存储的连接+用二进制方式读取并且保存在本地+重命名  == 流程OK

你现在用两种方式来运行程序:

第一种:用游览器跑程序(多半会卡死,设置超时和内存大小就OK,你之间比较难等)

另一种:用命令行启动PHP(不存在PHP超时的问题)

/**
*HTML解析类
*author:Summer
*date:2014-08-22
**/
 class Analytical{
  public function __construct()
  {
     require_once('Class/SimpleHtmlDom.class.php');
     $this->_getDir();
  }
  private function _getDir()
  {
    $dir = "../TMP/HTML/Results/1";
    $imgBIG = "../TMP/IMG/JPG/BIG";
    $it = new DirectoryIterator($dir."/");
    foreach($it as $file) {
     //用isDot ()方法分别过滤掉“.”和“..”目录
     if (!$it->isDot()) {
       $dirs = $dir."/".$file ;
       $tmp = explode(".",$file);
       $html = file_get_html($dirs);
       $ulArr = $html->find('img');
       foreach($ulArr as $key=>$value)
       {
         if ($value->class == "u")
         {
           $url = http://3water.com.$value->src;
           $infomation = file_get_contents($url);
           $result = $this->saveHtml($infomation, $imgBIG, $tmp['0'].".jpg");
           if($result)
           {
            echo $file."OK\n";
           }
         }
       }
     }
   }
  }
   private function saveHtml($infomation,$filedir,$filename)
   {
     if(!$this->mkdirs($filedir))
     {
       return 0;
     }
     $sf = $filedir."/".$filename;
     $fp=fopen($sf,"w"); //写方式打开文件
     return fwrite($fp,$infomation); //存入内容
     fclose($fp); //关闭文件
   }
   //创建目录
   private function mkdirs($dir)
   {
     if(!is_dir($dir))
     {
       if(!$this->mkdirs(dirname($dir))){
         return false;
       }
       if(!mkdir($dir,0777)){
         return false;
       }
     }
     return true;
   }
 }
new Analytical();

上面这个是HTML页面获取IMG的连接地址的过程。

用到了两个比较重要的东西:

1.PHP的DOM解析扩展simplehtmldom

2.PHP的目录迭代器

理解这两个东西了。这个分析类就没难点了。

在说说如果获取需要解析的页面呢?

其实跟上面的原理的是一样的。主要获取页面的URL,然后通过CURL去读取页面,返回一个HTML字符串,

再通过保存函数包HTML页面保存到本地。

我这里是因为要采集页面里面的图片(为了防止别人防盗链),所以设计的比较复杂。

而且为什么要分开,是因为simplehtmldom对象是很庞大的,而且拆开进行这样对流程更加清楚。

肯定有人会说,那为什么不用正则去匹配就跳过了HTML保存到本地的环节了,BINGO!我只能懒得写正则而已。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
献给php初学者(入门学习经验谈)
Oct 12 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
xss防御之php利用httponly防xss攻击
Mar 21 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
PHP和MySql中32位和64位的整形范围是多少
Feb 18 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
Jan 17 PHP
微信公众平台开发教程②微信端分享功能图文详解
Apr 10 PHP
解决laravel(5.5)访问public报错的问题
Oct 12 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
基于php判断客户端类型
Oct 14 #PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
Oct 14 #PHP
php生成与读取excel文件
Oct 14 #PHP
基于PHP实现用户注册登录功能
Oct 14 #PHP
PHP基于curl后台远程登录正方教务系统的方法
Oct 14 #PHP
php车辆违章查询数据示例
Oct 14 #PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 #PHP
You might like
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php简单压缩css样式示例
2016/09/22 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
用javascript自动显示最后更新时间
2007/03/15 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
Python实现的选择排序算法示例
2017/11/29 Python
Python玩转Excel的读写改实例
2019/02/22 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
详解python如何引用包package
2020/06/07 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
财政局长自荐信范文
2013/12/22 职场文书
法务专员岗位职责
2014/01/02 职场文书
太太口服液广告词
2014/03/20 职场文书
优秀护士演讲稿
2014/04/30 职场文书
有关九一八事变的演讲稿
2014/09/14 职场文书
基层工作经验证明样本
2014/11/16 职场文书
500字小学生检讨书
2015/02/19 职场文书
高中运动会广播稿
2015/08/19 职场文书