curl_getinfo
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
curl_getinfo — Возвращает информацию об определенной операции
Описание
Возвращает информацию о последней операции.
Список параметров
-
handle
-
Дескриптор cURL, полученный из curl_init().
-
option
-
Одна из перечисленных констант:
-
CURLINFO_EFFECTIVE_URL
- Последний использованный URL -
CURLINFO_HTTP_CODE
- Последний код ответа. Начиная с PHP 5.5.0 и cURL 7.10.8, это устаревший псевдонимCURLINFO_RESPONSE_CODE
-
CURLINFO_FILETIME
- Удаленная (серверная) дата загруженного документа, если включена опцияCURLOPT_FILETIME
; если получено -1, значит это время неизвестно -
CURLINFO_TOTAL_TIME
- Общее время выполнения транзакции в секундах последней передачи -
CURLINFO_NAMELOOKUP_TIME
- Время разрешения имени сервера в секундах -
CURLINFO_CONNECT_TIME
- Время в секундах, затраченное на установку соединения -
CURLINFO_PRETRANSFER_TIME
- Время в секундах, прошедшее от начала операции до готовности к фактической передаче данных -
CURLINFO_STARTTRANSFER_TIME
- Время в секундах до передачи первого байта данных -
CURLINFO_REDIRECT_COUNT
- Число перенаправлений с включенной опциейCURLOPT_FOLLOWLOCATION
-
CURLINFO_REDIRECT_TIME
- Общее время в секундах, затраченное на перенаправления до начала последней транзакции с включенной опциейCURLOPT_FOLLOWLOCATION
-
CURLINFO_REDIRECT_URL
- При отключенной опцииCURLOPT_FOLLOWLOCATION
: URL перенаправления, найденный в прошлой итерации, который необходимо запрашивать вручную. Если опцияCURLOPT_FOLLOWLOCATION
включена: пустое значение. URL перенаправления в этом случае доступен вCURLINFO_EFFECTIVE_URL
-
CURLINFO_PRIMARY_IP
- IP-адрес последнего соединения -
CURLINFO_PRIMARY_PORT
- Порт получателя последнего соединения -
CURLINFO_LOCAL_IP
- Локальный (исходящий) IP адрес последнего соединения -
CURLINFO_LOCAL_PORT
- Локальный (исходящий) порт последнего соединения -
CURLINFO_SIZE_UPLOAD
- Общее количество байт при закачке -
CURLINFO_SIZE_DOWNLOAD
- Общее количество байт при загрузке -
CURLINFO_SPEED_DOWNLOAD
- Средняя скорость загрузки -
CURLINFO_SPEED_UPLOAD
- Средняя скорость закачки -
CURLINFO_HEADER_SIZE
- Суммарный размер всех полученных заголовков -
CURLINFO_HEADER_OUT
- Посылаемая строка запроса. Для работы этого параметра, добавьте опциюCURLINFO_HEADER_OUT
к дескриптору с помощью вызова curl_setopt() -
CURLINFO_REQUEST_SIZE
- Суммарный размер всех отправленных запросов, в настоящее время используется только для HTTP запросов -
CURLINFO_SSL_VERIFYRESULT
- Результат проверки SSL-сертификата, запрошенной с помощью установки параметраCURLOPT_SSL_VERIFYPEER
-
CURLINFO_CONTENT_LENGTH_DOWNLOAD
- размер скачанных данных, прочитанный из заголовкаContent-Length:
-
CURLINFO_CONTENT_LENGTH_UPLOAD
- Размер закачиваемых данных -
CURLINFO_CONTENT_TYPE
- Содержимое полученного заголовкаContent-Type:
. Если NULL, то сервер не послал правильный заголовокContent-Type:
-
CURLINFO_PRIVATE
- Внутренние данные, связанные с данным cURL-обработчиком, ранее установленные с помощью опцииCURLOPT_PRIVATE
в функции curl_setopt() -
CURLINFO_RESPONSE_CODE
- Последний код возврата -
CURLINFO_HTTP_CONNECTCODE
- Код ответа операции CONNECT -
CURLINFO_HTTPAUTH_AVAIL
- Битовая маска, показывающая возможные методы аутентификации, доступные при предыдущем ответе -
CURLINFO_PROXYAUTH_AVAIL
- Битовая маска, показывающая возможные методы аутентификации на прокси, доступные при предыдущем ответе -
CURLINFO_OS_ERRNO
- Номер ошибки при попытке соединения. Код может различаться в зависимости от системы и ОС -
CURLINFO_NUM_CONNECTS
- Количество соединений, совершенных curl для обеспечения предыдущей передачи -
CURLINFO_SSL_ENGINES
- Поддержка OpenSSL -
CURLINFO_COOKIELIST
- Все известные куки -
CURLINFO_FTP_ENTRY_PATH
- Путь входа на FTP-сервер -
CURLINFO_APPCONNECT_TIME
- Время в секундах от начала и до установления SSL/SSH connect/handshake с удаленным хостом -
CURLINFO_CERTINFO
- связка ключей TLS -
CURLINFO_CONDITION_UNMET
- информация о неудовлетворенных временных условиях -
CURLINFO_RTSP_CLIENT_CSEQ
- Следующий RTSP клиентского CSeq -
CURLINFO_RTSP_CSEQ_RECV
- Недавно полученный CSeq -
CURLINFO_RTSP_SERVER_CSEQ
- Следующий RTSP серверного CSeq -
CURLINFO_RTSP_SESSION_ID
- ID сессии RTSP -
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
- Content-length загрузки. Это значение считывается из поляContent-Type:
. -1 если размер не известен -
CURLINFO_CONTENT_LENGTH_UPLOAD_T
- Указанный размер загрузки. -1 если размер не известен -
CURLINFO_HTTP_VERSION
- Версия, использованная в последнем HTTP-соединении. Возвращаемое значение будет одной из определенных константCURL_HTTP_VERSION_*
или 0, если версия не может быть определена -
CURLINFO_PROTOCOL
- Протокол, использованный в последнем HTTP-соединении. Возвращаемое значение будет точно одним из значенийCURLPROTO_*
-
CURLINFO_PROXY_SSL_VERIFYRESULT
- Результат проверки сертификата, который был запрошен (с использованием параметраCURLOPT_PROXY_SSL_VERIFYPEER
). Используется только для HTTPS-прокси -
CURLINFO_SCHEME
- Схема URL, используемая для самого последнего соединения -
CURLINFO_SIZE_DOWNLOAD_T
- Общее количество скачанных байтов. Номер предназначен только для последней передачи и будет сбрасываться для каждой новой передачи. -
CURLINFO_SIZE_UPLOAD_T
- Общее количество загруженных байтов -
CURLINFO_SPEED_DOWNLOAD_T
- Средняя скорость скачивания в байтах/секунду, измеренная для полного скачивания -
CURLINFO_SPEED_UPLOAD_T
- Средняя скорость загрузки в байтах/секунду, измеренная для полной загрузки -
CURLINFO_APPCONNECT_TIME_T
- Время в микросекундах, которое прошло с самого начала до тех пор, пока соединение/рукопожатие SSL/SSH не было завершено -
CURLINFO_CONNECT_TIME_T
- Общее время, затрачиваемое в микросекундах с начала до момента подключения к удаленному хосту (или прокси-серверу) -
CURLINFO_FILETIME_T
- Удаленное время извлеченного документа (как метка времени Unix), альтернативаCURLINFO_FILETIME
, чтобы разрешить системам с 32-битными long-переменными извлекать даты вне диапазона 32-битных временных меток -
CURLINFO_NAMELOOKUP_TIME_T
-в Время в микросекундах от начала до разрешения имени -
CURLINFO_PRETRANSFER_TIME_T
- Время в микросекундах, затраченное с самого начала до начала передачи файла -
CURLINFO_REDIRECT_TIME_T
- Общее время в микросекундах, которое потребовалось для всех шагов перенаправления, включая поиск имени, подключение, предварительный перенос и передачу до запуска окончательной транзакции -
CURLINFO_STARTTRANSFER_TIME_T
- Время в микросекундах, которое прошло с начала до получения первого байта -
CURLINFO_TOTAL_TIME_T
- Общее время в микросекундах для предыдущей передачи, включая разрешение имен, TCP-соединение и т. д.
-
Возвращаемые значения
Если параметр option
указан, то возвращается его
значение. Иначе возвращается ассоциативный массив со
следующими элементами (которые соответствуют значениям аргумента
option
) или false
в случае ошибки:
- "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" (возвращается только при установленной
опции
CURLINFO_HEADER_OUT
с помощью вызова curl_setopt() до выполнения запроса)
CURLINFO_PRIVATE
.
Список изменений
Версия | Описание |
---|---|
8.0.0 |
handle теперь ожидает экземпляр CurlHandle;
раньше, ожидался ресурс (resource).
|
8.0.0 |
option is nullable now;
previously, the default was 0 .
|
7.3.0 |
Добавлены 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 .
|
Примеры
Пример #1 Пример использования curl_getinfo()
<?php
// Создаем дескриптор cURL
$ch = curl_init('http://www.example.com/');
// Запускаем
curl_exec($ch);
// Проверяем наличие ошибок
if (!curl_errno($ch)) {
$info = curl_getinfo($ch);
echo 'Прошло ', $info['total_time'], ' секунд во время запроса к ', $info['url'], "\n";
}
// Закрываем дескриптор
curl_close($ch);
?>
Пример #2 Пример использования curl_getinfo() с параметром option
<?php
// Создаем дескриптор cURL
$ch = curl_init('http://www.example.com/');
// Запускаем
curl_exec($ch);
// Проверяем наличие ошибок
if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200: # OK
break;
default:
echo 'Неожиданный код HTTP: ', $http_code, "\n";
}
}
// Закрываем дескриптор
curl_close($ch);
?>
Примечания
Замечание:
Информация, собранная этой функцией, будет сохранена при дальнейшем использовании дескриптора. Это означает, что если статистика не будет перезаписана самой функцией, будет возвращаться информация по предыдущему запросу.