Fonction PHP curl_multi_info_read

PHP Calendar 参考手册Manuel de référence PHP cURL

(PHP 5)

curl_multi_info_read — Obtenir les informations relatives au transfert du cURL actuel


Description

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

Interroge si le handle de lot contient des messages ou des informations renvoyés par des threads de transfert individuels. Les messages peuvent contenir des rapports tels que des codes d'erreur renvoyés par des threads de transfert individuels, ou simplement des rapports indiquant si les threads de transfert sont terminés.

Appeler cette fonction de façon répétée renvoie un nouveau résultat à chaque fois, jusqu'à ce qu'il n'y ait plus d'informations à renvoyer, auquel cas FALSE est renvoyé comme signal. L'entier renvoyé via msgs_in_queue indique le nombre de messages qui resteront après cet appel de fonction.

Remarque :Les données pointées par la ressource renvoyée n'existeront plus après l'appel de curl_multi_remove_handle().


Parameters

mh

Le handle multi cURL renvoyé par curl_multi_init().

msgs_in_queue

Le nombre de messages encore présents dans la file d'attente.


Valeurs de retour

Retourne un tableau d'informations pertinentes en cas de succès, ou FALSE en cas d'échec.

Contenu de la valeur de retour (contenu du tableau retourné)

Touche Valeur
msg CURLMSG_DONEUne constante. Les autres valeurs de retour ne sont actuellement pas disponibles.
result CURLE_*L'une des constantes. Si tout fonctionne sans problème, elle retourneraCURLE_OKConstante.
handle Un type de ressource cURL indiquant le handle auquel il est associé.

Exemples

<?php

$urls = array(
   "http://www.baidu.com/",
   "http://www.google.com.hk/",
   "http://www.w3cschool.cc/"
);

$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);
    $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));

?>

La sortie 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)

Journal des modifications

Version Description
5.2.0 msgs_in_queueAjouté.

PHP Calendar 参考手册Manuel de référence PHP cURL

Autres extensions