php - file_get_contents() 是否有超时设置?

标签 php timeout file-get-contents

我正在使用 file_get_contents() 调用一系列链接循环中的方法。每个链接的处理时间可能超过 15 分钟。现在,我担心PHP的file_get_contents()是否有超时时间?

如果是,它将超时并移至下一个链接。我不想在没有完成前一个链接的情况下调用下一个链接。

那么,请告诉我 file_get_contents() 是否有超时时间。包含 file_get_contents() 的文件设置为 set_time_limit()归零(无限)。

最佳答案

默认超时由 default_socket_timeout ini-setting 定义,即 60 秒。您也可以随时更改它:

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

另一种设置超时的方法是使用 stream_context_create将超时设置为 HTTP context optionsHTTP stream wrapper使用中:

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

echo file_get_contents('http://example.com/', false, $ctx);

关于php - file_get_contents() 是否有超时设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10236166/

相关文章:

c# - 在 .NET 4 中实现 RegEx 超时

php - 维基百科对 file_get_contents 的奇怪编码答案

PHP 5.3.18 Mcrypt 错误 : Cannot open source device

PHP imagettftext 在透明背景上创建黑边

linux - 无法在 I2C 设备上使用 write() 或 read() 调用,但 echo 和 i2c-tools 可以工作

PHP file_get_contents 使用变量

http - file_get_contents 和错误代码

php - 解析 JSON 数据并插入到 MySQL

php - 在 PHP 中将 MySQL 数据导出到 CSV 时自动前进到下一行?

c# - 通过超时取消 C# 4.5 TcpClient ReadAsync