Función PHP curl_multi_info_read

PHP Calendar 参考手册Manual de referencia de cURL de PHP

(PHP 5)

curl_multi_info_read — Obtiene la información de transferencia relacionada con el cURL actualmente analizado


Descripción

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

Consulta si el manejador de lote tiene mensajes o información para devolver en hilos de transferencia individuales. Los mensajes pueden incluir informes como códigos de error devueltos por hilos de transferencia individuales o simplemente informes de si el hilo de transferencia ha finalizado o no.

Si se llama a esta función repetidamente, cada vez devolverá un nuevo resultado, hasta que, cuando no haya más información que devolver, se devuelve FALSE como señal. El entero devuelto mediante msgs_in_queue indica cuántos mensajes quedarán después de que se haya realizado esta llamada.

Nota:Los datos a los que apunta el recurso devuelto ya no existirán después de llamar a curl_multi_remove_handle().


Parámetros

mh

El manejador múltiple de cURL devuelto por curl_multi_init().

msgs_in_queue

El número de mensajes que aún están en la cola.


Valores de retorno

Devuelve un array con la información relevante en caso de éxito, o FALSE en caso de fallo.

Contenido del valor de retorno (contenido del array devuelto):

Tecla Valor
msg CURLMSG_DONEConstante. Otros valores de retorno no están disponibles actualmente.
result CURLE_*Una de las constantes. Si todo funcionó sin problemas, devolveráCURLE_OKconstante.
handle El tipo de recurso cURL indica el manejador asociado.

Ejemplos

<?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 salida del ejemplo anterior es similar 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)

Registro de cambios

Versión Descripción
5.2.0 msgs_in_queueAñadido.

PHP Calendar 参考手册Manual de referencia de cURL de PHP

Otras extensiones