(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
curl_getinfo — Возвращает информацию об определённой операции
Возвращает информацию о последней операции.
handle
Дескриптор cURL, полученный из curl_init().
option
Одна из перечисленных констант:
CURLINFO_EFFECTIVE_URL
- Последний использованный URL
CURLINFO_HTTP_CODE
- Последний код ответа.
Начиная с 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_REFERER
- Заголовок реферера
CURLINFO_REQUEST_SIZE
- Суммарный размер всех отправленных запросов, в настоящее время используется только для HTTP-запросов
CURLINFO_RETRY_AFTER
- Информация из заголовка Retry-After:
или ноль, если корректного заголовка не было.
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_PROXY_ERROR
- Подробный (SOCKS) код ошибки прокси, когда последняя
передача вернула ошибку CURLE_PROXY
.
Возвращаемое значение будет ровно одним из значений CURLPX_*
.
Код ошибки будет CURLPX_OK
, если код ответа не был доступен.
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-Length:
. -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
в случае возникновения ошибки:
CURLINFO_HEADER_OUT
с помощью вызова curl_setopt() до выполнения запроса)
CURLINFO_PRIVATE
.
Версия | Описание |
---|---|
8.2.0 |
Добавлены константы CURLINFO_PROXY_ERROR ,
CURLINFO_REFERER ,
CURLINFO_RETRY_AFTER .
|
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);
?>
Замечание:
Информация, собранная этой функцией, будет сохранена при дальнейшем использовании дескриптора. Это означает, что если статистика не будет перезаписана самой функцией, будет возвращаться информация по предыдущему запросу.