SunshinePHP Developer Conference 2015

curl_multi_info_read

(PHP 5)

curl_multi_info_readLit les informations sur les transferts actuels

Description

array curl_multi_info_read ( resource $mh [, int &$msgs_in_queue = NULL ] )

Appel le gestionnaire multiple s'il y a des messages ou des informations issus des transferts individuels. Les messages peuvent inclure des informations comme un code erreur du transfert, ou juste le fait que le transfert est terminé.

Les appels répétés à cette fonction retournera un nouveau résultat à chaque fois, tant que FALSE n'est pas retourné, indiquant qu'il n'y a plus rien à récupérer pour le moment. L'entier présent dans le paramètre msgs_in_queue représente le nombre de messages restant une fois cette fonction appelée.

Avertissement

Les données pointées par la ressource retournée, ne survivront pas à l'appel de la fonction curl_multi_remove_handle().

Liste de paramètres

mh

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

msgs_in_queue

Nombre de messages encore présents dans la file d'attente

Valeurs de retour

Retourne un tableau associatif contenant le message en cas de succès, FALSE si une erreur survient.

Contenu du tableau retourné
Key: Value:
msg La constante CURLMSG_DONE. Les autres valeurs retournées sont actuellement non disponibles.
result Une des constantes CURLE_*. Si tout s'est bien déroulé, la constante CURLE_OK sera retournée.
handle Ressource de type curl indiquant le gestionnaire concerné.

Exemples

Exemple #1 Exemple avec curl_multi_info_read()

<?php

$urls 
= array(
   
"http://www.cnn.com/",
   
"http://www.bbc.co.uk/",
   
"http://www.yahoo.com/"
);

$mh curl_multi_init();

foreach (
$urls as $i => $url) {
    
$conn[$i] = curl_init($url);
    
curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER1);
    
curl_multi_add_handle($mh$conn[$i]);
}

do {
    
$status curl_multi_exec($mh$active);
    
$info curl_multi_info_read($mh);
    if (
false !== $info) {
        
var_dump($info);
    }
} while (
$status === CURLM_CALL_MULTI_PERFORM || $active);

foreach (
$urls as $i => $url) {
    
$res[$i] = curl_multi_getcontent($conn[$i]);
    
curl_close($conn[$i]);
}

var_dump(curl_multi_info_read($mh));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(5) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(7) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(6) of type (curl)
}
bool(false)

Historique

Version Description
5.2.0 Le paramètre msgs_in_queue a été ajouté.

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
0
Nick Smith
4 years ago
Just to let others who might be struggling to get it to work, curl_multi_info_read() doesn't work in PHP versions before 5.2.0, and instead returns NULL immediately.
To Top