【问题标题】:php file_get_contents when does connection close?php file_get_contents 连接何时关闭?
【发布时间】:2016-01-19 20:31:00
【问题描述】:

所以我知道 file_get_contents 一旦收到响应就会调用 fclose() 。但是,如果从未收到响应怎么办? php的默认超时会处理超时响应并关闭连接还是连接保持打开状态?如果连接保持打开状态,我如何确保连接关闭?还是我最好使用 cURL?

【问题讨论】:

标签: php file-get-contents


【解决方案1】:

file_get_contents 使用常规的stream context,您甚至可以将其作为第三个参数传递。您可以在那里设置timeout option

$ctx = stream_context_create([
    'http' ['timeout' => 10]
]);

$content = file_get_contents('http://...', FALSE, $ctx);

当您不指定http.timeout 上下文设置时,它将默认为default_socket_timeout php.ini 设置(在大多数系统上默认设置为60 秒)。

【讨论】:

  • 感谢 Andrew coder 在问题 cmets 中提供了指向源的链接,我能够确定每次都关闭连接流,这可以通过您的答案中提供的超时来调用。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-12
  • 2016-04-27
  • 2011-03-18
  • 2013-03-08
  • 1970-01-01
相关资源
最近更新 更多