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);
?>
Примечания
Замечание:
Информация, собранная этой функцией, будет сохранена при дальнейшем использовании дескриптора. Это означает, что если статистика не будет перезаписана самой функцией, будет возвращаться информация по предыдущему запросу.