169

file_get_contents()メソッドをループで使用して、一連のリンクを呼び出しています。各リンクの処理には 15 分以上かかる場合があります。file_get_contents()さて、PHPにタイムアウト期間があるかどうかが心配です。

はいの場合、呼び出しでタイムアウトになり、次のリンクに移動します。前のリンクが終了せずに次のリンクを呼び出したくありません。

file_get_contents()では、タイムアウト期間があるかどうか教えてください。を含むファイルはゼロ (無制限) にfile_get_contents()設定されます。set_time_limit()

4

6 に答える 6

318

デフォルトのタイムアウトはdefault_socket_timeoutini-settingで定義されており、これは 60 秒です。その場で変更することもできます:

ini_set('default_socket_timeout', 900); // 900 Seconds = 15 Minutes

タイムアウトを設定する別の方法として、使用中のHTTP ストリーム ラッパーのHTTP コンテキスト オプションstream_context_createとしてタイムアウトを設定する方法があります。

$ctx = stream_context_create(array('http'=>
    array(
        'timeout' => 1200,  //1200 Seconds is 20 Minutes
    )
));

echo file_get_contents('http://example.com/', false, $ctx);
于 2012-04-19T20:46:37.327 に答える
1

私の場合、ホストでphp.iniを変更すると機能します:

; Default timeout for socket based streams (seconds)
default_socket_timeout = 300
于 2016-07-28T17:13:58.337 に答える