(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
curl_getinfo — Получает информацию о конкретной передаче
Получает информацию о последней передаче.
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
в случае ошибки:
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);
?>
Замечание:
Информация, которую собирает эта функция, хранится в дескрипторе и доступна для запуска повторной передачи. То есть, пока статистика не переопределена внутренне, эта функция возвращает предыдущую информацию.