array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.curl-getinfo.php', 1 => 'curl_getinfo', ), 'up' => array ( 0 => 'ref.curl.php', 1 => 'Функции cURL', ), 'prev' => array ( 0 => 'function.curl-exec.php', 1 => 'curl_exec', ), 'next' => array ( 0 => 'function.curl-init.php', 1 => 'curl_init', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/curl/functions/curl-getinfo.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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);
?>
Замечание:
Информация, которую собирает эта функция, хранится в дескрипторе и доступна для запуска повторной передачи. То есть, пока статистика не переопределена внутренне, эта функция возвращает предыдущую информацию.