デフォルトの PHP cURL タイムアウト値は何ですか? コーディングから値を取得できますか?
3 に答える
話しているタイムアウト設定によって異なります。
cURL には、接続タイムアウト設定に固有のさまざまなオプションが用意されています。これらのオプションには制限が設定されているものもあれば、転送に無期限の時間がかかるものもあります。どの値にデフォルト設定があり、どの値にないかを理解するには、libcurl のcurl_easy_setopt()
関数を確認する必要があります: 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 秒に変更することです:
他の回答の1つは、PHPがini設定CURLOPT_TIMEOUT
で指定された値に設定されると述べています。default_socket_timeout
この主張を裏付ける PHP ソース コードを見つけることができませんでした。また、default_socket_timeout
設定が 1 秒の非常に大きなファイルをダウンロードして cURL タイムアウトをトリガーすることもできませんでした。
デフォルトは次のとおりです。
- CURLOPT_FTP_RESPONSE_TIMEOUT: 無期限
- CURLOPT_TIMEOUT: 無期限
- CURLOPT_TIMEOUT_MS: 無期限
- CURLOPT_CONNECTTIMEOUT: 300 秒
- CURLOPT_CONNECTTIMEOUT_MS: 無期限
- CURLOPT_ACCEPTTIMEOUT_MS: 60 秒
以前の回答 (参考):
CURLOPT_TIMEOUT
/でオーバーライドしない限り、CURL は default_socket_timeout に従うというのが私の理解ですCURLOPT_CONNECTTIMEOUT
。
$socket_timeout = ini_get('default_socket_timeout'); // timeout in seconds
libcurl にはありません。http://curl.haxx.se/mail/lib-2003-05/0097.html