(PHP5)
curl_multi_exec — exécute une sous-connexion du handle cURL actuel
int curl_multi_exec ( ressource $mh , int &$still_running )
Traitez chaque poignée de la pile. Cette méthode peut être appelée si le handle doit lire ou écrire des données.
mh
cURL plusieurs handles renvoyés par curl_multi_init().
toujours_en cours d'exécution
Référence à un identifiant utilisé pour déterminer si l'opération est toujours en cours d'exécution.
Un code cURL défini dans les constantes prédéfinies cURL.
Remarque : Cette fonction renvoie uniquement les erreurs liées à l'ensemble de la pile de lots. Des problèmes peuvent encore survenir avec les transferts individuels même lorsque CURLM_OK est renvoyé.
Cet exemple créera 2 handles cURL, les ajoutera à un gestionnaire de lots et les exécutera en parallèle.
<?php// Créer une paire de ressources cURL $ch1 = curl_init();$ch2 = curl_init();// Définir l'URL et les options correspondantes curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net / ");curl_setopt($ch1, CURLOPT_HEADER, 0);curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");curl_setopt($ch2, CURLOPT_HEADER, 0);//Créer un handle cURL par lots $mh = curl_multi_init();//Ajouter 2 handles curl_multi_add_handle($mh ,$ ch1);curl_multi_add_handle($mh,$ch2);$active = null;//Exécuter le handle par lots do { $mrc = curl_multi_exec($mh, $active);} while ($mrc == CURLM_CALL_MULTI_PERFORM);while ($active && $mrc == CURLM_OK) { if (curl_multi_select ($mh ) != -1) { do { $mrc = curl_multi_exec($mh, $active } while); ($mrc == CURLM_CALL_MULTI_PERFORM); }}//Fermer toutes les poignées curl_multi_remove_handle($mh, $ch1);curl_multi_remove_handle($mh, $ch2);curl_multi_close($mh);?>