CakeFest 2024: The Official CakePHP Conference

curl_multi_info_read

(PHP 5, PHP 7, PHP 8)

curl_multi_info_readOttiene informazioni sui trasferimenti correnti

Descrizione

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

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.

Avviso

I dati a cui la risorsa restituita punta non sopravviveranno chiamando curl_multi_remove_handle().

Elenco dei parametri

mh

Un identificativo multiplo rstituito da curl_multi_init().

queued_messages

Il numero di messaggi che sono ancora in coda

Valori restituiti

In caso di successo, restituisce un array associativo per il messaggio, false in caso di fallimento.

Contenuto dell'array restituito
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.

Log delle modifiche

Versione Descrizione
8.0.0 multi_handle expects a CurlMultiHandle instance now; previously, a resource was expected.

Esempi

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)

Vedere anche:

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