file_get_contents() のタイムアウトに関する考慮事項
file_get_contents() を使用してリモート リンクからデータを取得する場合、そのタイムアウトの影響を考慮することが重要です。 。デフォルトでは、file_get_contents() は、PHP ini 設定のdefault_socket_timeout (デフォルトは 60 秒) からタイムアウト時間を継承します。取得操作がこの制限を超えると、リクエストは途中でタイムアウトになります。
デフォルトのタイムアウトを上書きする
デフォルトのタイムアウト設定を変更するには、主に次の 2 つの方法があります。
ini 設定の変更: ini_set() を使用して、default_socket_timeout 値を調整します。例:
ini_set('default_socket_timeout', 900); // 900 Seconds = 15 Minutes
ストリーム コンテキストの構成: stream_context_create() を使用してカスタム ストリーム コンテキストを定義し、HTTP コンテキスト オプションとして必要なタイムアウトを指定します。以下に例を示します:
$ctx = stream_context_create(array('http' => array('timeout' => 1200))); //1200 Seconds is 20 Minutes echo file_get_contents('http://example.com/', false, $ctx);
注: タイムアウト期間は、ネットワーク遅延やサーバーの処理時間を含む、ファイル取得プロセス全体に適用されることに注意してください。したがって、潜在的な遅延を考慮して適切なタイムアウト値を設定することが重要です。
以上がfile_get_contents() 使用時のタイムアウト問題はどのように管理すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。