Какое значение тайм-аута PHP cURL по умолчанию? Могу ли я получить значение от кодирования?
По умолчанию используются следующие значения:
Предыдущий ответ (для справки):
Я понимаю, что 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 перечисляет следующие параметры тайм-аута соединения:
Исходный код 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 секунду.
Нет в libcurl. http://curl.haxx.se/mail/lib-2003-05/0097.html
Может быть, проще указать это значение непосредственно в скрипте?
curl_setopt($curl_handler, CURLOPT_TIMEOUT, 30); // 30 seconds