PHP: значение тайм-аута по умолчанию cURL

Какое значение тайм-аута PHP cURL по умолчанию? Могу ли я получить значение от кодирования?

Solutions Collecting From Web of "PHP: значение тайм-аута по умолчанию cURL"

По умолчанию используются следующие значения:

  • CURLOPT_FTP_RESPONSE_TIMEOUT: неопределенный
  • CURLOPT_TIMEOUT: неопределенный
  • CURLOPT_TIMEOUT_MS: Неопределенный
  • CURLOPT_CONNECTTIMEOUT: 300 секунд
  • CURLOPT_CONNECTTIMEOUT_MS: Неопределенный
  • CURLOPT_ACCEPTTIMEOUT_MS: 60 секунд

Предыдущий ответ (для справки):

Я понимаю, что CURL подчиняется default_socket_timeout, если не переопределяется с CURLOPT_TIMEOUT / CURLOPT_CONNECTTIMEOUT .

 $socket_timeout = ini_get('default_socket_timeout'); // timeout in seconds 

Это зависит от того, какой настройкой тайм-аута вы говорите.

cURL предлагает различные параметры, относящиеся к настройкам тайм-аута соединения. Некоторые из этих вариантов имеют установленный предел, в то время как другие позволяют переносить неограниченное количество времени. Чтобы понять, какие значения имеют настройки по умолчанию, а какие нет, вам нужно посмотреть на curl_easy_setopt() libcurl: http://curl.haxx.se/libcurl/c/curl_easy_setopt.html

libcurl перечисляет следующие параметры тайм-аута соединения:

  • CURLOPT_FTP_RESPONSE_TIMEOUT: по умолчанию (неопределенный)
  • CURLOPT_TIMEOUT: по умолчанию (неопределенный)
  • CURLOPT_TIMEOUT_MS: по умолчанию (неопределенный)
  • CURLOPT_CONNECTTIMEOUT: по умолчанию 300 секунд
  • CURLOPT_CONNECTTIMEOUT_MS: по умолчанию
  • CURLOPT_ACCEPTTIMEOUT_MS: по умолчанию 60000 мс

Исходный код PHP не отменяет никаких настроек по умолчанию: https://github.com/php/php-src/blob/master/ext/curl/interface.c . Единственным связанным параметром, который переопределяет привязки PHP, является CURLOPT_DNS_CACHE_TIMEOUT , изменяя значение по умолчанию от 60 секунд до 120 секунд: https://github.com/php/php-src/blob/a0e3ca1c986681d0136ce4550359ecee2826a80c/ext/curl/interface.c# L1926

В одном из других ответов было указано, что PHP установит CURLOPT_TIMEOUT на значение, указанное в настройке default_socket_timeout ini. Я не смог найти что-либо в исходном коде PHP для резервного копирования этой заявки, и мне не удалось вызвать тайм-аут cURL, загрузив очень большой файл с настройкой default_socket_timeout в 1 секунду.

Может быть, проще указать это значение непосредственно в скрипте?

 curl_setopt($curl_handler, CURLOPT_TIMEOUT, 30); // 30 seconds