Maison > Article > développement back-end > Application de curl_multi en php multi-processus
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) :
pour curl-multi de PHP, testé sur PHP 5.0.0RC1 CLI / FreeBSD 5.2.1
mains = array(
foreach ($connomains as $i => $url) {
topt($conn[$i],CURLOPT_RETOURTRANSFERT ,1);
while ($active);
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里的
接口 while ($active et $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
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!