curl_getinfo

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

curl_getinfoПолучает информацию о конкретной передаче

Описание

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

Получает информацию о последней передаче.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

option

Константа из списка:

ОпцияОписание
CURLINFO_CAINFO Путь к встроенному сертификату удостоверяющего центра по умолчанию
CURLINFO_CAPATH Строка пути к встроенному сертификату удостоверяющего центра по умолчанию
CURLINFO_EFFECTIVE_URL Последний эффективный URL
CURLINFO_HTTP_CODE Последний код ответа. Начиная с cURL 7.10.8 это устаревший псевдоним опции CURLINFO_RESPONSE_CODE
CURLINFO_FILETIME Время получения документа по часам удалённого сервера, если параметр CURLOPT_FILETIME включён для дескриптора cURL; если возвращается значение -1, то время получения документа неизвестно
CURLINFO_TOTAL_TIME Общее время транзакции в секундах для последней передачи
CURLINFO_NAMELOOKUP_TIME Время в секундах, затраченное на разрешение имени
CURLINFO_CONNECT_TIME Время в секундах, затраченное на установку соединения
CURLINFO_PRETRANSFER_TIME Время в секундах от запуска до момента начала передачи файла
CURLINFO_STARTTRANSFER_TIME Время в секундах от запуска передачи до получения первого байта
CURLINFO_REDIRECT_COUNT Число перенаправлений, если параметр CURLOPT_FOLLOWLOCATION включён для дескриптора cURL
CURLINFO_REDIRECT_TIME Общее время в секундах, которое потребовалось для всех шагов перенаправления до запуска последней транзакции, если параметр CURLOPT_FOLLOWLOCATION включён для дескриптора cURL
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, которые до этого были установлены функцией curl_setopt() с параметром CURLOPT_PRIVATE
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 Значение переменной Errno в случае сбоя соединения. Номер ошибки зависит от ОС и особенностей системы
CURLINFO_NUM_CONNECTS Количество соединений, которые curl пришлось создать, что успешно выполнить предыдущую передачу
CURLINFO_SSL_ENGINES Список поддерживаемых криптодвижков библиотеки OpenSSL
CURLINFO_COOKIELIST Известные куки
CURLINFO_FTP_ENTRY_PATH Путь входа на FTP-сервер
CURLINFO_APPCONNECT_TIME Время в секундах от запуска до установления SSL- или SSH- подключения или рукопожатия с удалённым хостом
CURLINFO_CERTINFO Цепочка сертификатов TLS
CURLINFO_CONDITION_UNMET Информация о невыполненных за отведённое время условиях
CURLINFO_RTSP_CLIENT_CSEQ Следующий CSeq-заголовок RTSP-клиента
CURLINFO_RTSP_CSEQ_RECV Последний полученный заголовок CSeq
CURLINFO_RTSP_SERVER_CSEQ Следующий CSeq-заголовок RTSP-сервера
CURLINFO_RTSP_SESSION_ID Идентификатор RTSP-сессии
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T Размер полученных данных. Это значение считывается из поля 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 Средняя скорость получения данных в байтах в секунду, которую curl измерил в конце передачи
CURLINFO_SPEED_UPLOAD_T Средняя скорость передачи данных в байтах в секунду, которую curl измерил в конце передачи
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» (Значение будет заполнено, только если функцией curl_setopt() для дескриптора включён параметр CURLINFO_HEADER_OUT.)
Учтите, что закрытые данные не добавляются в ассоциативный массив и извлекаются отдельно через опцию CURLINFO_PRIVATE.

Список изменений

ВерсияОписание
8.3.0 Добавлены опции CURLINFO_CAINFO и CURLINFO_CAPATH.
8.2.0 Добавлены опции CURLINFO_PROXY_ERROR, CURLINFO_REFERER, CURLINFO_RETRY_AFTER.
8.0.0 Параметр handle теперь ожидает экземпляр класса CurlHandle; раньше, параметр ждал ресурс (resource).
8.0.0 Теперь параметр option принимает значение null. ранее значением по умолчанию был 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);

?>

Примечания

Замечание:

Информация, которую собирает эта функция, хранится в дескрипторе и доступна для запуска повторной передачи. То есть, пока статистика не переопределена внутренне, эта функция возвращает предыдущую информацию.

To Top