Maison >développement back-end >tutoriel php >Application de curl_multi en php multi-processus

Application de curl_multi en php multi-processus

大家讲道理
大家讲道理original
2017-05-28 09:37:582011parcourir

Je crois que beaucoup de gens ont des maux de tête à propos des fonctions de la famille curl_multi qui ne sont pas claires dans le Manuel PHP Ils ont peu de documents et les exemples donnés sont tout simplement impossibles pour vous. pour apprendre. J'ai également recherché de nombreuses pages Web mais je n'ai pas trouvé d'exemple d'application complet.

  • curl_multi_add_handle

  • curl_multi_close

  • curl_multi_exec

  • curl_multi_getcontent

  • curl_multi_info_read

  • curl_multi_init

  • curl_multi_remove_hand le

  • curl_multi_select

De manière générale, lorsque l'on pense utiliser ces fonctions, le but doit évidemment être de demander plusieurs URL en même temps, plutôt qu'une par une Requête à tour de rôle, sinon il vaut mieux boucler pour ajuster curl_exec vous-même.

Les étapes sont résumées comme suit :

Étape 1 : Appeler curl_multi_init
Étape 2 : Appeler curl_multi_add_handle dans une boucle
Il est à noter dans cette étape que le deuxième paramètre de curl_multi_add_handle est donné par Subhandle de curl_init.
Étape 3 : Continuez à appeler curl_multi_exec
Étape 4 : Appelez curl_multi_getcontent en boucle pour obtenir les résultats nécessaires
Étape 5 : Appelez curl_multi_remove_handle et appelez curl_close pour chaque handle de mot
Étape 6 : Appelez curl_multi_close

Voici un exemple simple trouvé en ligne L'auteur l'appelle dirty example (j'expliquerai pourquoi sale plus tard) :

Application de curl_multi en php multi-processus/*<br/><img src=pour curl-multi de PHP, testé sur PHP 5.0.0RC1 CLI / FreeBSD 5.2.1
Application de curl_multi en php multi-processus*/<br/><img src=mains = array(
Application de curl_multi en php multi-processusApplication de curl_multi en php multi-processusApplication de curl_multi en php multi-processusApplication de curl_multi en php multi-processus);<br/><img src=foreach ($connomains as $i => $url) {
Application de curl_multi en php multi-processus     $conn[$i]=curl_init($url);<br/><img src=topt($conn[$i],CURLOPT_RETOURTRANSFERT ,1);
Application de curl_multi en php multi-processus      curl_multi_add_handle ($mh,$conn[$i]);<br/><img src=while ($active);
Application de curl_multi en php multi-processus<br/><img src= print_r($res);

 

整个使用过程差不多就是这样,但是,这个简单代码有个致命弱点,就是在do循环的那段,在整个url Le processeur est à 100 % et le processeur est à 100 %. Il y a aussi curl_multi_select par C的curl et select. ,但是,php里的

接口

和用法确与C中有不同。把上面do的那段改成下面这样:

Application de curl_multi en php multi-processus faire {<br/><img src= while ($active et $mrc ​​​​== CURLM_OK) {
if (curl_multi_select($mh) != -1) {Application de curl_multi en php multi-processus<br/> Do {<img src=

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!

Déclaration:
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