PHP小偷程序的设计与实现方法详解
本文实例讲述了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 = <a>http://</a>www.jb51.net.$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中文网!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Alipay Php ...

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...
