curl_getinfo

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

curl_getinfoObtener información sobre una transferencia específica

Descripción

curl_getinfo ( resource $ch [, int $opt ] ) : mixed

Obtiene información sobre la última transferencia.

Parámetros

ch

El recurso cURL devuelto por curl_init().

opt

Esta puede ser una de las siguientes constantes:

  • CURLINFO_EFFECTIVE_URL - Última URL efectiva
  • CURLINFO_HTTP_CODE - El último código de respuesta. A partir de PHP 5.5.0 y cURL 7.10.8, este es un alias heredado de CURLINFO_RESPONSE_CODE
  • CURLINFO_FILETIME - Tiempo remoto del documento recuperado, con la constante CURLOPT_FILETIME habilitada; si -1 es devuelto el tiempo del documento es desconocido
  • CURLINFO_TOTAL_TIME - Tiempo total de transacción en segundos para la última transferencia
  • CURLINFO_NAMELOOKUP_TIME - El tiempo en segundos hasta que la resolución del nombre se haya completado
  • CURLINFO_CONNECT_TIME - El tiempo en segundos que tomó establecer la conexión
  • CURLINFO_PRETRANSFER_TIME - Tiempo en segundos desde el inicio hasta justo antes de que comience la transferencia de archivos
  • CURLINFO_STARTTRANSFER_TIME - Tiempo en segundos hasta que el primer byte está a punto de ser transferido
  • CURLINFO_REDIRECT_COUNT - Número de redirecciones, con la opción CURLOPT_FOLLOWLOCATION habilitada
  • CURLINFO_REDIRECT_TIME - Tiempo en segundos de todos los pasos de redireccionamiento antes de que se iniciara la transacción final, con la opción CURLOPT_FOLLOWLOCATION habilitada
  • CURLINFO_REDIRECT_URL - Con la opción CURLOPT_FOLLOWLOCATION deshabilitadad: redirigir la URL encontrada en la última transacción, que debe ser solicitado manualmente a continuación. Con la opción CURLOPT_FOLLOWLOCATION habilitada: esto está vacío. El URL de redireccionamiento en este caso está disponible en CURLINFO_EFFECTIVE_URL
  • CURLINFO_PRIMARY_IP - La dirección IP de la conexión más reciente
  • CURLINFO_PRIMARY_PORT - Puerto de destino de la conexión más reciente
  • CURLINFO_LOCAL_IP - Dirección IP local (fuente) de la conexión más reciente
  • CURLINFO_LOCAL_PORT - Puerto local (fuente) de la conexión más reciente
  • CURLINFO_SIZE_UPLOAD - Número total de bytes cargados
  • CURLINFO_SIZE_DOWNLOAD - Número total de bytes descargados
  • CURLINFO_SPEED_DOWNLOAD - Velocidad media de descarga
  • CURLINFO_SPEED_UPLOAD - Velocidad media de subida
  • CURLINFO_HEADER_SIZE - Tamaño total de todos los encabezados recibidos
  • CURLINFO_HEADER_OUT - El string de solicitud enviado. Para que esto funcione, agregue la opción CURLINFO_HEADER_OUT al manejador llamando curl_setopt()
  • CURLINFO_REQUEST_SIZE - Tamaño total de las solicitudes emitidas, actualmente sólo para las solicitudes HTTP
  • CURLINFO_SSL_VERIFYRESULT - Resultado de la verificación de la certificación SSL solicitada mediante el ajuste CURLOPT_SSL_VERIFYPEER
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD - Longitud del contenido de la descarga, leído desde el campo Content-Length:
  • CURLINFO_CONTENT_LENGTH_UPLOAD - Tamaño especificado de la carga
  • CURLINFO_CONTENT_TYPE - Content-Type: de el documento. NULL indica que el servidor no envió un encabezado válido Content-Type:
  • CURLINFO_PRIVATE - Los datos privados asociados al manejador cURL, previamente establecido con la opción CURLOPT_PRIVATE de curl_setopt()
  • CURLINFO_RESPONSE_CODE - El último código de respuesta
  • CURLINFO_HTTP_CONNECTCODE - El código de respuesta CONNECT
  • CURLINFO_HTTPAUTH_AVAIL - Máscara de bits que indica el(los) método(s) de autenticación disponible(s) según la respuesta anterior
  • CURLINFO_PROXYAUTH_AVAIL - Máscara de bits que indica el(los) método(s) de autenticación del proxy disponible(s) según la respuesta anterior
  • CURLINFO_OS_ERRNO - Número de error de un fallo de conexión. El número es específico del sistema y del sistema operativo.
  • CURLINFO_NUM_CONNECTS - El número de conexiones que Curl tuvo que crear para lograr la transferencia anterior
  • CURLINFO_SSL_ENGINES - Los motores de cifrado OpenSSL soportados
  • CURLINFO_COOKIELIST - Todas las cookies conocidas
  • CURLINFO_FTP_ENTRY_PATH - Ruta de entrada en el servidor FTP
  • CURLINFO_APPCONNECT_TIME - El tiempo en segundos que tomó desde el inicio hasta que la conexión SSL/SSH al host remoto se completó
  • CURLINFO_CERTINFO - Cadena de certificados TLS
  • CURLINFO_CONDITION_UNMET - Información sobre el tiempo condicional no cumplido
  • CURLINFO_RTSP_CLIENT_CSEQ - Próximo cliente de RTSP CSeq
  • CURLINFO_RTSP_CSEQ_RECV - Recién recibido CSeq
  • CURLINFO_RTSP_SERVER_CSEQ - Próximo servidor RTSP CSeq
  • CURLINFO_RTSP_SESSION_ID - ID de la sesión RTSP
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD_T - El contenido de la descarga. Este es el valor leído de el campo Content-Type:. -1 si el tamaño no es conocido
  • CURLINFO_CONTENT_LENGTH_UPLOAD_T - El tamaño especificado de la carga. -1 si no se conoce el tamaño
  • CURLINFO_HTTP_VERSION - La versión usada en la última conexión HTTP. El valor devuelto será una de las constantes CURL_HTTP_VERSION_* constants o 0 si la versión no puede ser determinada
  • CURLINFO_PROTOCOL - El protocolo utilizado en la última conexión HTTP. El valor devuelto será exactamente uno de los valores CURLPROTO_*
  • CURLINFO_PROXY_SSL_VERIFYRESULT - El resultado de la verificación del certificado que se solicitó (usando la opción CURLOPT_PROXY_SSL_VERIFYPEER). Sólo se utiliza para los proxies HTTPS
  • CURLINFO_SCHEME - El esquema de URL usado para la conexión más reciente
  • CURLINFO_SIZE_DOWNLOAD_T - Número total de bytes que se descargaron. El número es sólo para la última transferencia y se restablecerá de nuevo para cada nueva transferencia
  • CURLINFO_SIZE_UPLOAD_T - Número total de bytes que se cargaron
  • CURLINFO_SPEED_DOWNLOAD_T - La velocidad media de descarga en bytes/segundo que cURL midió para la descarga completa
  • CURLINFO_SPEED_UPLOAD_T - La velocidad media de subida en bytes/segundo que cURL midió para la subida completa
  • CURLINFO_APPCONNECT_TIME_T - Tiempo, en microsegundos, que tomó desde el principio hasta que la conexión SSL/SSH al host remoto se completó
  • CURLINFO_CONNECT_TIME_T - Tiempo total tomado, en microsegundos, desde el inicio hasta que se completó la conexión con el host remoto (o proxy)
  • CURLINFO_FILETIME_T - Hora remota del documento recuperado (como la marca de tiempo de Unix), una alternativa a CURLINFO_FILETIME para permitir que los sistemas con variables de 32 bits de largo extraigan fechas fuera del rango de 32 bits de la marca de tiempo
  • CURLINFO_NAMELOOKUP_TIME_T - Tiempo en microsegundos desde el comienzo hasta que el nombre es resuelto.
  • CURLINFO_PRETRANSFER_TIME_T - El tiempo transcurrido desde el inicio hasta la transferencia de archivos está a punto de comenzar, en microsegundos
  • CURLINFO_REDIRECT_TIME_T - El tiempo total, en microsegundos, que tomó para todos los pasos de redireccionamiento incluyen la búsqueda del nombre, la conexión, la pretransferencia y la transferencia antes de que se iniciara la transacción final
  • CURLINFO_STARTTRANSFER_TIME_T - El tiempo, en microsegundos, que tomó desde el inicio hasta que se recibe el primer byte
  • CURLINFO_TOTAL_TIME_T - Tiempo total en microsegundos para la transferencia anterior, incluyendo la resolución de nombres, la conexión TCP, etc.

Valores devueltos

Si se da opt, devuelve este valor. En caso contrario, devuelve un array asociativo con los siguientes valores (que corresponden a opt), o FALSE en caso de error:

  • "url"
  • "content_type"
  • "http_code"
  • "header_size"
  • "request_size"
  • "filetime"
  • "ssl_verify_result"
  • "redirect_count"
  • "total_time"
  • "namelookup_time"
  • "connect_time"
  • "pretransfer_time"
  • "size_upload"
  • "size_download"
  • "speed_download"
  • "speed_upload"
  • "download_content_length"
  • "upload_content_length"
  • "starttransfer_time"
  • "redirect_time"
  • "certinfo"
  • "primary_ip"
  • "primary_port"
  • "local_ip"
  • "local_port"
  • "redirect_url"
  • "request_header" (Esto sólo se establece si CURLINFO_HEADER_OUT se establece por una llamada previa a curl_setopt())
Nótese que los datos privados no están incluidos en el conjunto asociativo y deben recuperarse individualmente con la opción CURLINFO_PRIVATE.

Historial de cambios

Versión Descripción
7.3.0 Introdujo CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T, CURLINFO_TOTAL_TIME_T.
5.5.0 Introdujo CURLINFO_RESPONSE_CODE, CURLINFO_HTTP_CONNECTCODE, CURLINFO_HTTPAUTH_AVAIL, CURLINFO_PROXYAUTH_AVAIL, CURLINFO_OS_ERRNO, CURLINFO_NUM_CONNECTS, CURLINFO_SSL_ENGINES, CURLINFO_COOKIELIST, CURLINFO_FTP_ENTRY_PATH, CURLINFO_APPCONNECT_TIME, CURLINFO_CONDITION_UNMET, CURLINFO_RTSP_CLIENT_CSEQ, CURLINFO_RTSP_CSEQ_RECV, CURLINFO_RTSP_SERVER_CSEQ y CURLINFO_RTSP_SESSION_ID.
5.4.7 Introdujo CURLINFO_PRIMARY_IP, CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP y CURLINFO_LOCAL_PORT.
5.3.7 Introdujo CURLINFO_REDIRECT_URL.
5.3.0 Introdujo CURLINFO_CERTINFO.
5.2.4 Introdujo CURLINFO_PRIVATE.
5.1.3 Introdujo CURLINFO_HEADER_OUT.

Ejemplos

Ejemplo #1 Ejemplo de curl_getinfo()

<?php
// Crear un manejador cURL
$ch curl_init('http://www.example.com/');

// Ejecutar
curl_exec($ch);

// Verificar si ocurrió algún error
if (!curl_errno($ch)) {
  
$info curl_getinfo($ch);
  echo 
'Took '$info['total_time'], ' seconds to send a request to '$info['url'], "\n";
}

// Close handle
curl_close($ch);
?>

Ejemplo #2 Ejemplo de curl_getinfo() con el parámetro opt

<?php
// Crear un manejador cURL
$ch curl_init('http://www.example.com/');

// Ejecutar
curl_exec($ch);

// Comprueba el código de estado HTTP
if (!curl_errno($ch)) {
  switch (
$http_code curl_getinfo($chCURLINFO_HTTP_CODE)) {
    case 
200:  # OK
      
break;
    default:
      echo 
'Unexpected HTTP code: '$http_code"\n";
  }
}

// Close handle
curl_close($ch);
?>

Notas

Nota:

La información recogida por esta función se guarda si el manejador se reutiliza. Esto significa que a menos que una estadística sea anulada internamente por esta función, la información anterior es devuelta.