PHP 8.3.4 Released!

curl_multi_info_read

(PHP 5, PHP 7, PHP 8)

curl_multi_info_readLit les informations sur les transferts actuels

Description

curl_multi_info_read(CurlMultiHandle $multi_handle, int &$queued_messages = null): array|false

Appelle 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 queued_messages 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

multi_handle

Un gestionnaire cURL multiple retourné par curl_multi_init().

queued_messages

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é.

Historique

Version Description
8.0.0 multi_handle attend désormais une instance de CurlMultiHandle; auparavant; une resource était attendue.

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_RETURNTRANSFER, 1);
curl_multi_add_handle($mh, $conn[$i]);
}

do {
$status = curl_multi_exec($mh, $active);
if (
$active) {
curl_multi_select($mh);
}
while (
false !== ($info = curl_multi_info_read($mh))) {
var_dump($info);
}
} while (
$active && $status == CURLM_OK);

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

var_dump(curl_multi_info_read($mh));

?>

Résultat de l'exemple ci-dessus est 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)

Voir aussi

add a note

User Contributed Notes 1 note

up
-2
Nick Smith
13 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