curl_getinfo

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

curl_getinfoObtém informação sobre uma transferência específica

Descrição

curl_getinfo(CurlHandle $handle, ?int $option = null): mixed

Obtém informação sobre a última transferência.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

option

Pode ser uma das seguintes constantes:

Opção Descrição
CURLINFO_CAINFO Padrão interno do arquivo de certificado CA
CURLINFO_CAPATH Padrão interno do diretório de certificados CA
CURLINFO_EFFECTIVE_URL Última URL efetiva
CURLINFO_HTTP_CODE O último código de resposta. A partir do cURL 7.10.8, é um apelido legado de CURLINFO_RESPONSE_CODE
CURLINFO_FILETIME Horário remoto do documento obtido, com a constante CURLOPT_FILETIME habilitada; se -1 for retornado, o horário do documento é desconhecido
CURLINFO_TOTAL_TIME Tempo total de transação em segundos para a última transferência
CURLINFO_NAMELOOKUP_TIME Tempo em segundos até que a resolução de nome foi concluída
CURLINFO_CONNECT_TIME Tempo em segundos para estabelecer a conexão
CURLINFO_PRETRANSFER_TIME Tempo em segundos do início até logo antes de iniciar a transferência de arquivo
CURLINFO_STARTTRANSFER_TIME Tempo em segundos até que o primeiro byte está para ser transferido
CURLINFO_REDIRECT_COUNT Número de redirecionamentos, com a opção CURLOPT_FOLLOWLOCATION habilitada
CURLINFO_REDIRECT_TIME Tempo em segundos de todos as etapas de redirecionamento antes do início da transação final, com a opção CURLOPT_FOLLOWLOCATION habilitada
CURLINFO_REDIRECT_URL Com a opção CURLOPT_FOLLOWLOCATION desabilitada: URL de redirecionamento encontrada na última transação, que deverá ser requisitada manualmente na sequência. Com a opção CURLOPT_FOLLOWLOCATION desabilitada: isto fica vazio. A URL de redirecionamento neste caso fica disponível em CURLINFO_EFFECTIVE_URL
CURLINFO_PRIMARY_IP Endereço IP da conexão mais recente
CURLINFO_PRIMARY_PORT Porta de destino da conexão mais recente
CURLINFO_LOCAL_IP Endereço IP local (origem) da conexão mais recente
CURLINFO_LOCAL_PORT Porta local (origem) da conexão mais recente
CURLINFO_SIZE_UPLOAD Número total de bytes enviados
CURLINFO_SIZE_DOWNLOAD Número total de bytes recebidos
CURLINFO_SPEED_DOWNLOAD Velocidade média de recepção
CURLINFO_SPEED_UPLOAD Velocidade média de envio
CURLINFO_HEADER_SIZE Tamanho total de todos os cabeçalhos recebidos
CURLINFO_HEADER_OUT A string de requisição enviada. Para que isto funcione, deve-se adicionar a opção CURLINFO_HEADER_OUT ao manipulador chamando-se curl_setopt()
CURLINFO_REFERER O cabeçalho do referenciados
CURLINFO_REQUEST_SIZE Tamanho total de requisições emitidas, atualmente apenas para requisições HTTP
CURLINFO_RETRY_AFTER A informação do cabeçalho Retry-After:, ou zero se não houver cabeçalho válido.
CURLINFO_SSL_VERIFYRESULT Resultado da verificação de certificado SSL requisitada pela habilitação da opção CURLOPT_SSL_VERIFYPEER
CURLINFO_CONTENT_LENGTH_DOWNLOAD Tamanho do conteúdo recebido, lido do campo Content-Length:
CURLINFO_CONTENT_LENGTH_UPLOAD Tamanho especificado do upload
CURLINFO_CONTENT_TYPE Content-Type: do documento requisitado. NULL indica que o servidor não enviou o cabeçalho Content-Type:
CURLINFO_PRIVATE Dados privados associados a este manipulador cURL, previamente configurado com a opção CURLOPT_PRIVATE da função curl_setopt()
CURLINFO_PROXY_ERROR O código de erro detalhado do proxy (SOCKS) quando a transferência mais recente retorna um erro CURLE_PROXY. O valor retornado será exatamente um dos valores CURLPX_*. O código de erro será CURLPX_OK se nenhum código de resposta estiver disponível.
CURLINFO_RESPONSE_CODE O último código de resposta
CURLINFO_HTTP_CONNECTCODE O código de resposta de CONNECT
CURLINFO_HTTPAUTH_AVAIL Máscara de bits indicando os métodos de autenticação disponíveis de acordo com a resposta anterior
CURLINFO_PROXYAUTH_AVAIL Máscara de bits indicando os métodos de autenticação do proxy disponíveis de acordo com a resposta anterior
CURLINFO_OS_ERRNO Número do erro de uma falha de conexão. O número depende da arquitetura e do sistema operacional.
CURLINFO_NUM_CONNECTS Número de conexões que curl teve de criar para concluir a transferência anterior
CURLINFO_SSL_ENGINES Esquemas de criptografia OpenSSL suportados
CURLINFO_COOKIELIST Todos os cookies conhecidos
CURLINFO_FTP_ENTRY_PATH Caminho de entrada no servidor FTP
CURLINFO_APPCONNECT_TIME Tempo em segundos decorrido do início até que a conexão/negociação SSL/SSH ao servidor remoto foi concluída
CURLINFO_CERTINFO Cadeia de certificados TLS
CURLINFO_CONDITION_UNMET Informação sobre condição de tempo não cumprida
CURLINFO_RTSP_CLIENT_CSEQ Próximo CSeq do cliente RTSP
CURLINFO_RTSP_CSEQ_RECV CSeq recentemente recebido
CURLINFO_RTSP_SERVER_CSEQ Próximo CSeq do servidor RTSP
CURLINFO_RTSP_SESSION_ID ID de sessão RTSP
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T O tamanho do conteúdo recebido. Isto é o valor lido do campo Content-Length:. -1 se o tamanho for desconhecido
CURLINFO_CONTENT_LENGTH_UPLOAD_T O tamanho especificado do envio. -1 se o tamanho for desconhecido
CURLINFO_HTTP_VERSION A versão usada na última conexão HTTP. O valor de retorno será uma das constantes CURL_HTTP_VERSION_* definidas ou 0 se a versão não puder ser determinada
CURLINFO_PROTOCOL O protocolo usado na última conexão HTTP. O valor retornado será exatamente uma dos valores CURLPROTO_*
CURLINFO_PROXY_SSL_VERIFYRESULT O resultado da verificação de certificado que foi requisitada (usando a opção CURLOPT_PROXY_SSL_VERIFYPEER). Usado apenas para proxy HTTPS
CURLINFO_SCHEME O esquema de URL usado para a conexão mais recente
CURLINFO_SIZE_DOWNLOAD_T O número total de bytes recebidos. O número refere-se apenas à última transferência e será redefinido para cada nova transferência
CURLINFO_SIZE_UPLOAD_T Número total de bytes enviados
CURLINFO_SPEED_DOWNLOAD_T A velocidade média de recebimento em bytes/segundo que curl mediu para todo o recebimento de dados
CURLINFO_SPEED_UPLOAD_T A velocidade média de envio em bytes/segundo que curl mediu para todo o envio de dados
CURLINFO_APPCONNECT_TIME_T Tempo em microssegundos decorrido do início até que a conexão/negociação SSL/SSH ao servidor remoto tenha sido concluída
CURLINFO_CONNECT_TIME_T Tempo em microssegundos decorrido do início até que a conexão ao servidor remoto (ou proxy) tenha sido concluída
CURLINFO_FILETIME_T Horário remoto do documento recebido (em timestamp Unix), como alternativa a CURLINFO_FILETIME para permitir que sistemas com variáveis de 32 bit extraiam datas fora da faixa de 32-bits
CURLINFO_NAMELOOKUP_TIME_T Tempo em microssegundos do início até que a conclusão da resolução de nome
CURLINFO_PRETRANSFER_TIME_T Tempo decorrido do início até que a transferência de arquivos esteja para iniciar, em microssegundos
CURLINFO_REDIRECT_TIME_T Tempo total em microssegundos decorrido para todas as etapas de redirecionamento incluindo pesquisa de nome, conexão, pré-transferência e transferência, antes do início da transação final
CURLINFO_STARTTRANSFER_TIME_T Tempo em microssegundos decorrido do início até o recebimento do primeiro byte
CURLINFO_TOTAL_TIME_T Tempo total em microssegundos da transferência anterior, including resolução de nome, conexão TCP etc.

Valor Retornado

Se o parâmetro option for fornecido, retorna seu valor. Caso contrário, retorna um array associativo com os elementos a seguir (que correspondem a option), ou false em caso de falha:

  • "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" (Este somente será definido se a opção CURLINFO_HEADER_OUT for configurada por uma chamada prévia a curl_setopt())
Note que dados privados não são incluídos no array associativo e devem ser obtidos individualmente com a opção CURLINFO_PRIVATE.

Exemplos

Example #1 Exemplo de curl_getinfo()

<?php
// Cria um manipulador cURL
$ch = curl_init('http://www.example.com/');

// Executa
curl_exec($ch);

// Verifica se algum erro ocorreu
if (!curl_errno($ch)) {
  $info = curl_getinfo($ch);
  echo 'Demorou ', $info['total_time'], ' segundos para enviar uma requisição a ', $info['url'], "\n";
}

// Fecha o manipulador
curl_close($ch);
?>

Example #2 Exemplo de curl_getinfo() com parâmetro option

<?php
// Cria um identificador cURL
$ch = curl_init('http://www.example.com/');

// Executa
curl_exec($ch);

// Verifica o código de estado do HTTP
if (!curl_errno($ch)) {
  switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
    case 200:  # OK
      break;
    default:
      echo 'Código HTTP inesperado: ', $http_code, "\n";
  }
}

// Fecha o identificador
curl_close($ch);
?>

Notas

Note:

Informações obtidas por esta função são mantidas se o identificador for reutilizado. Isto significa que a menos que uma estatística seja substituída internamente por esta função, a informação anterior é retornada.