curl_getinfo

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

curl_getinfoObtener información relativa a una transferencia específica

Descripción

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

Obtiene información sobre la última transferencia.

Parámetros

ch

El recurso cURL devuelto por curl_init().

opt

Puede ser una de las siguientes constantes:

  • CURLINFO_EFFECTIVE_URL - Último URL efectivo
  • CURLINFO_HTTP_CODE - Último código HTTP recibido
  • CURLINFO_FILETIME - Hora del documento remoto obtenido; si devuelve -1, la hora del documento es desconocida
  • CURLINFO_TOTAL_TIME - Duración total, en segundos, de última transferencia
  • CURLINFO_NAMELOOKUP_TIME - Tiempo, en segundos, en resolver el nombre
  • CURLINFO_CONNECT_TIME - Tiempo, en segundos, que tomó el establecimiento de la conexión
  • CURLINFO_PRETRANSFER_TIME - Tiempo, en segundos, desde el inicio hasta justo antes de que comience la transferencia del fichero
  • CURLINFO_STARTTRANSFER_TIME - Tiempo, en sengudos, hasta que el primer byte está a punto de transferirse
  • CURLINFO_REDIRECT_COUNT - Número de redireccionamientos, con la opción CURLOPT_FOLLOWLOCATION habilitada
  • CURLINFO_REDIRECT_TIME - Tiempo, en segundos, de todos los pasos de redireción antes de que la última transación haya empezado, con la opción CURLOPT_FOLLOWLOCATION habilitada
  • CURLINFO_REDIRECT_URL - Con la opción CURLOPT_FOLLOWLOCATION inhabilitada: URL de redirección encontrado en la última transacción, que debería ser solicitado manualmente luego. Con la opción CURLOPT_FOLLOWLOCATION habilitada: está vacío. El URL de redirección en este caso está disponible en CURLINFO_EFFECTIVE_URL
  • CURLINFO_PRIMARY_IP - 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 subidos
  • 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 los encabezados recibidos
  • CURLINFO_HEADER_OUT - El string de la petición enviada. Para que funcione, se ha de añadir la opción CURLINFO_HEADER_OUT al manejador, llamando a curl_setopt()
  • CURLINFO_REQUEST_SIZE - Tamaño total de las peticiones realizadas, actualmente solo para peticiones HTTP
  • CURLINFO_SSL_VERIFYRESULT - Resultado de la verificación del certificado SSL solicitado por la opción CURLOPT_SSL_VERIFYPEER
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD - Logitud del contenido de la descarga, leída desde el campo Content-Length:
  • CURLINFO_CONTENT_LENGTH_UPLOAD - Tamaño especificado de subida
  • CURLINFO_CONTENT_TYPE - Content-Type: del documento solicitado. NULL indica que el servidor no envío un encabezado Content-Type: válido.
  • CURLINFO_PRIVATE - Datos privados asociados a este manejador de cURL, previamente establecidos 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 de CONNECT
  • CURLINFO_HTTPAUTH_AVAIL - Máscara de bits que indica el/los método/s de autenticación disponible/s de acuerdo a la respuesta anterior
  • CURLINFO_PROXYAUTH_AVAIL - Máscara de bits que indica el/los método/s de autenticaición proxy disponible/s de acuerdo a la respuesta anterior
  • CURLINFO_OS_ERRNO - Número de error (errno) de un fallo de conexion. Es número es específico de cada SO y sistema
  • CURLINFO_NUM_CONNECTS - Número de conexiones que curl ha tenido que crear para lograr la transferencia anterior
  • CURLINFO_SSL_ENGINES - Criptomotores OpenSSL admitidos
  • CURLINFO_COOKIELIST - Todas las cookies conocidas
  • CURLINFO_FTP_ENTRY_PATH - Ruta de entrada en el servidor FTP
  • CURLINFO_APPCONNECT_TIME - Tiempo, en segundos, desde el inicio hasta la conexión/apretón de manos SSL/SSH del host remoto
  • CURLINFO_CERTINFO - Serie de certificados TLS
  • CURLINFO_CONDITION_UNMET - Información del condicional de timepo unmet
  • CURLINFO_RTSP_CLIENT_CSEQ - Siguiente CSeq cliente de RTSP
  • CURLINFO_RTSP_CSEQ_RECV - CSeq recivido recientemente
  • CURLINFO_RTSP_SERVER_CSEQ - Siguiente CSeq servidor de RTSP
  • CURLINFO_RTSP_SESSION_ID - ID de sesión de RTSP

Valores devueltos

Si se indica el parámetro, opt, devolverá su valor. De lo contrario, devolverá un array asociativo con los siguientes elementos (que se 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" (Solamente está definido si CURLINFO_HEADER_OUT está establecido por una llamada previa a curl_setopt())
Observe que los datos privados no están incluídos en el array asociativo, por lo que deben obtenerse individualmente con con la opción CURLINFO_PRIVATE.

Historial de cambios

Versión Descripción
5.5.0 Se introdujeron 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 Se introdujeros CURLINFO_PRIMARY_IP, CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP y CURLINFO_LOCAL_PORT.
5.3.7 Se introdujo CURLINFO_REDIRECT_URL.
5.3.0 Se introdujo CURLINFO_CERTINFO.
5.2.4 Se introdujo CURLINFO_PRIVATE.
5.1.3 Se introdujo CURLINFO_HEADER_OUT.

Ejemplos

Ejemplo #1 Ejemplo de curl_getinfo()

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

// Ejecutar
curl_exec($ch);

// Comprobar si ocurrió un error
if (!curl_errno($ch)) {
  
$info curl_getinfo($ch);
  echo 
'Se tardó '$info['total_time'], ' segundos en enviar una petición a '$info['url'], "\n";
}

// Cerrar el manejador
curl_close($ch);
?>

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

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

// Ejecutar
curl_exec($ch);

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

// Cerrar el manejador
curl_close($ch);
?>

Notas

Nota:

La información obtenida por esta función se mantiene si se reutiliza el manejador. Esto significa que, a no ser que una estadística sea sobrescrita internamente por esta función, se devolverá la información previa.