curl_getinfo
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
curl_getinfo — Obtém informação sobre uma transferência específica
Descrição
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())
CURLINFO_PRIVATE
.
Registro de Alterações
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 .
|
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.