curl_getinfo

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

curl_getinfoВозвращает информацию об определенной операции

Описание

curl_getinfo ( resource $ch [, int $opt ] ) : mixed

Возвращает информацию о последней операции.

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

ch

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

opt

Одна из перечисленных констант:

  • 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

Возвращаемые значения

Если параметр opt указан, то возвращается его значение. Иначе возвращается ассоциативный массив со следующими элементами (которые соответствуют значениям аргумента opt) или 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.

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

Версия Описание
5.5.0 Добавлены CURLINFO_RESPONSE_CODE, CURLINFO_HTTP_CONNECTCODE, CURLINFO_HTTPAUTH_AVAIL, CURLINFO_PROXYAUTH_AVAIL, CURLINFO_OS_ERRNO, CURLINFO_NUM_CONNECTS, CURLINFO_SSL_ENGINES, CURLINFO_COOKIELIST, CURLINFO_FTP_ENTRY_PATH, CURLINFO_APPCONNECT_TIME, CURLINFO_CONDITION_UNMET, CURLINFO_RTSP_CLIENT_CSEQ, CURLINFO_RTSP_CSEQ_RECV, CURLINFO_RTSP_SERVER_CSEQ и CURLINFO_RTSP_SESSION_ID.
5.4.7 Добавлены CURLINFO_PRIMARY_IP, CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP и CURLINFO_LOCAL_PORT.
5.3.7 Добавлена CURLINFO_REDIRECT_URL.
5.3.0 Добавлена CURLINFO_CERTINFO.
5.2.4 Добавлена CURLINFO_PRIVATE.
5.1.3 Добавлена CURLINFO_HEADER_OUT.

Примеры

Пример #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() с параметром opt

<?php
// Создаем дескриптор cURL
$ch curl_init('http://www.example.com/');

// Запускаем
curl_exec($ch);

// Проверяем наличие ошибок
if (!curl_errno($ch)) {
  switch (
$http_code curl_getinfo($chCURLINFO_HTTP_CODE)) {
    case 
200:  # OK
      
break;
    default:
      echo 
'Неожиданный код HTTP: '$http_code"\n";
  }
}

// Закрываем дескриптор
curl_close($ch);
?>

Примечания

Замечание:

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