English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base PHP

Tutorial avanzato PHP

PHP & MySQL

Manuale di riferimento PHP

Uso e esempio della funzione PHP curl_multi_info_read()

PHP CURL参考手册

(PHP 5)

curl_multi_info_read — Ottieni informazioni di trasmissione correlate alla CURL attualmente analizzata

Sintassi

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

Verifica se ci sono messaggi o informazioni restituiti nel thread di trasmissione separato. I messaggi possono includere codici di errore restituiti dal thread di trasmissione separato o semplicemente rapporti su se il thread di trasmissione è stato completato.

La chiamata a questa funzione viene ripetuta, e ogni volta viene restituito un nuovo risultato fino a quando non ci sono più informazioni disponibili, FALSE viene restituito come segnale. L'intero numero restituito tramite msgs_in_queue indica il numero di messaggi rimasti quando questa funzione viene chiamata.

Attenzione:Il dato puntato dal risorsa restituito non esisterà più dopo la chiamata a curl_multi_remove_handle().

Parametro

mh

Molti gestori CURL restituiti da curl_multi_init().

msgs_in_queue

Numero di messaggi ancora in coda.

Valore di ritorno

Restituisce un array di informazioni correlate con successo, FALSE in caso di fallimento.

Contenuto del valore di ritorno (contenuto dell'array di ritorno) :

ChiaveValore
msgCURLMSG_DONECostanti. Altri valori di ritorno attualmente non disponibili.
risultatoCURLE_*Una delle costanti. Se tutte le operazioni sono andate bene, verrà restituitoCURLE_OKCostanti.
gestoreIl tipo di risorsa CURL indica il relativo gestore.

Esempio online

<?php
$urls = array(
   "http://www.baidu.com/",
   "http://www.google.com.hk/",
   "http://it.oldtoolbag.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);
    $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'output degli esempi sopra è simile a:

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

更新日志

版本说明
5.2.0msgs_in_queue被加入。

PHP CURL参考手册