Exemple de code d'exploration de pages Web multithread PHP

怪我咯
Libérer: 2023-03-13 15:14:01
original
1146 Les gens l'ont consulté

Le multi-threading (anglais : multithreading) fait référence à la technologie qui réalise l'exécution simultanée de plusieurs threads à partir d'un logiciel ou d'un matériel. Les ordinateurs dotés de capacités multithread disposent d'un support matériel qui leur permet d'exécuter plusieurs threads en même temps, améliorant ainsi les performances globales de traitement. Les systèmes dotés de cette capacité incluent des multiprocesseurs symétriques, des processeurs multicœurs et des processeurs multithreading au niveau de la puce ou multithreading simultané. [1] Dans un programme, ces fragments de programme exécutés indépendamment sont appelés « Threads », et le concept de programmation qui les utilise est appelé « Multithreading ». Les ordinateurs dotés de capacités multithreading peuvent exécuter plusieurs threads (traduit par « thread » à Taiwan) en même temps grâce à la prise en charge matérielle, améliorant ainsi les performances globales de traitement. PHP peut utiliser les fonctions Curl pour effectuer diverses opérations de transfert de fichiers, telles que la simulation d'un navigateur pour envoyer GET,

requête POST

et ainsi de suite. Limité par le fait que le langage PHP lui-même ne prend pas en charge le multi-threading, l'efficacité du développement de programmes d'exploration n'est pas élevée. À l'heure actuelle, il est souvent nécessaire d'utiliser Curl Multi Functions, qui peut réaliser des opérations simultanées. accès multithread à plusieurs adresses URL. Étant donné que Curl Multi Function est si puissant, pouvez-vous utiliser Curl Multi Functions pour écrire des téléchargements de fichiers multithread simultanés. Bien sûr, vous pouvez le faire :

Code 1 : Écrivez le code obtenu directement dans un fichier


Le code est le suivant :

Code 2 : Mettez le code obtenu dans la

variable
<?php 
$urls = array( 
&#39;http://www.php.cn/&#39;, 
&#39;http://www.baidu.com/&#39;, 
&#39;http://www.163.com/&#39; 
); // 设置要抓取的页面URL 

$save_to=&#39;/test.txt&#39;; // 把抓取的代码写入该文件 

$st = fopen($save_to,"a"); 
$mh = curl_multi_init(); 

foreach ($urls as $i => $url) { 
$conn[$i] = curl_init($url); 
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"); 
curl_setopt($conn[$i], CURLOPT_HEADER ,0); 
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60); 
curl_setopt($conn[$i], CURLOPT_FILE,$st); // 设置将爬取的代码写入文件 
curl_multi_add_handle ($mh,$conn[$i]); 
} // 初始化 

do { 
curl_multi_exec($mh,$active); 
} while ($active); // 执行 

foreach ($urls as $i => $url) { 
curl_multi_remove_handle($mh,$conn[$i]); 
curl_close($conn[$i]); 
} // 结束清理 

curl_multi_close($mh); 
fclose($st); 
?>
Copier après la connexion
, puis écrivez-le dans un fichier

Le code est le suivant :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!