ホームページ  >  記事  >  バックエンド開発  >  file_get_contents() 使用時のタイムアウト問題はどのように管理すればよいですか?

file_get_contents() 使用時のタイムアウト問題はどのように管理すればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-13 14:19:02680ブラウズ

How can I manage timeout issues when using file_get_contents()?

Timeout Considerations for file_get_contents()

When utilizing file_get_contents() to fetch data from a remote link, it's crucial to consider its timeout implications. By default, file_get_contents() inherits its timeout duration from the PHP ini setting default_socket_timeout, which defaults to 60 seconds. If a retrieval operation exceeds this limit, the request will time out prematurely.

Overriding the Default Timeout

To modify the default timeout setting, there are two primary approaches:

  1. Ini Setting Modification: Utilize ini_set() to adjust the default_socket_timeout value. For example:

    ini_set('default_socket_timeout', 900); // 900 Seconds = 15 Minutes
  2. Stream Context Configuration: Define a custom stream context using stream_context_create() and specify the desired timeout as HTTP context options. Here's an example:

    $ctx = stream_context_create(array('http' => array('timeout' => 1200))); //1200 Seconds is 20 Minutes
    echo file_get_contents('http://example.com/', false, $ctx);

Note: Remember that the timeout duration applies to the entire file retrieval process, including network latency and server processing time. Therefore, it's essential to set an appropriate timeout value that accounts for potential delays.

以上がfile_get_contents() 使用時のタイムアウト問題はどのように管理すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。