(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
curl_getinfo — Obtém informação sobre uma transferência específica
Obtém informação sobre a última transferência.
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. |
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:
CURLINFO_HEADER_OUT
for configurada por uma chamada prévia a curl_setopt()) CURLINFO_PRIVATE
. Versão | Descrição |
---|---|
8.3.0 | Introduzidas as constantes CURLINFO_CAINFO e CURLINFO_CAPATH . |
8.2.0 | Introduzidas as constantes CURLINFO_PROXY_ERROR , CURLINFO_REFERER e CURLINFO_RETRY_AFTER . |
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado. |
8.0.0 | option agora pode ser nulo; anteriormente, o padrão era 0 . |
7.3.0 | Introduzidas as opções 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 e CURLINFO_TOTAL_TIME_T . |
Exemplo #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);
?>
Exemplo #2 Exemplo de curl_getinfo() com parâmetro option
<?php
// Cria um manipulador 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 manipulador
curl_close($ch);
?>
Nota:
Informações obtidas por esta função são mantidas se o manipulador for reutilizado. Isto significa que a menos que uma estatística seja substituída internamente por esta função, a informação anterior é retornada.