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.
(PHP 5, PHP 7, PHP 8)
curl_multi_info_read — Ottiene informazioni sui trasferimenti correnti
Chiede all'handle multiplo se c'è qualche messaggio o informazione dai trasferimenti individuali. I messaggi possono includere informazioni come un codice di errore dal trasferimento o solo il fatto che il trasferimento è completato.
Chiamate ripetute a questa funzione restituiranno un nuovo risultato ogni volta, finchè non viene restituito un false
come segnale che non c'è più nulla da ottenere a quel punto. L'intero a cui punterà
queued_messages
conterrà il numero dei messaggi rimanenti dopo che questa
funzione è stata chiamata.
I dati a cui la risorsa restituita punta non sopravviveranno chiamando curl_multi_remove_handle().
mh
Un identificativo multiplo rstituito da curl_multi_init().
queued_messages
Il numero di messaggi che sono ancora in coda
In caso di successo, restituisce un array associativo per il messaggio, false
in caso di fallimento.
Chiave: | Valore: |
---|---|
msg |
La costante CURLMSG_DONE . Altri valori restituiti
non sono attualmente disponibili. |
result |
Una delle costanti CURLE_* . Se tutto è
OK, il risultato sarà CURLE_OK . |
handle |
Risorsa di tipo curl indica l'handle a cui è associato. |
Versione | Descrizione |
---|---|
8.0.0 |
multi_handle expects a CurlMultiHandle
instance now; previously, a resource was expected.
|
Example #1 Un esempio di 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));
?>
Il precedente esempio visualizzerà qualcosa simile a:
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)
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.