Manuel PHP

curl_multi_exec

(PHP 5)

curl_multi_execExécute les sous-requêtes de la session cURL

Description

int curl_multi_exec ( resource $mh , int &$still_running )

Exécute chaque gestionnaire de la pile. Cette méthode peut être appelée même si un gestionnaire à besoin de lire ou d'écrire des données.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

still_running

Une référence à un drapeau, qui annonce si les opérations sont toujours en cours.

Valeurs de retour

Un code cURL, défini dans les constantes prédéfinies cURL.

Note: Cette fonction retourne que des erreurs au regard de la pile. Des problèmes surviennent toujours sur des transferts individuels même lorsque cette fonction retourne CURLM_OK.

Exemples

Exemple #1 Exemple avec curl_multi_exec()

Cet exemple crée deux gestionnaires cURL, les ajoute à un gestionnaire multiple, et les exécute en parallèle.

  1. <?php
  2. // Création des ressources cURL
  3. $ch1 = curl_init();  
  4. $ch2 = curl_init();  
  5.  
  6. // Définit l'URL ainsi que d'autres options
  7. curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");  
  8. curl_setopt($ch1, CURLOPT_HEADER, 0);  
  9. curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");  
  10. curl_setopt($ch2, CURLOPT_HEADER, 0);  
  11.  
  12. // Création du gestionnaire multiple
  13. $mh = curl_multi_init();  
  14.  
  15. // Ajoute les deux gestionnaires
  16. curl_multi_add_handle($mh,$ch1);  
  17. curl_multi_add_handle($mh,$ch2);  
  18.  
  19. $active = null;  
  20. // Exécute le gestionnaire
  21. do { 
  22.    $mrc = curl_multi_exec($mh, $active);  
  23. } while ($mrc == CURLM_CALL_MULTI_PERFORM);  
  24.  
  25. while ($active && $mrc == CURLM_OK) { 
  26.    if (curl_multi_select($mh) != -1) { 
  27.       do { 
  28.          $mrc = curl_multi_exec($mh, $active); 
  29.       } while ($mrc == CURLM_CALL_MULTI_PERFORM); 
  30.    }  
  31. }  
  32.  
  33. // Ferme les gestionnaires
  34. curl_multi_remove_handle($mh, $ch1);  
  35. curl_multi_remove_handle($mh, $ch2);  
  36. curl_multi_close($mh);  
  37.  
  38. ?> 


Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique