好的,所以我有一个 PHP 脚本,它使用file_get_contents()
.
另一个页面大约需要 30 秒来加载(它是脚本的类型),我所需要的file_get_contents()
就是启动这个脚本。
问题是,file_get_contents()
它将在整个 30 秒内保持加载。阻止这种情况的唯一方法是关闭选项卡(关闭选项卡时,它调用的脚本仍然运行)。
那么,我怎样才能让它file_get_contents();
在 2 秒后关闭呢?
提前致谢
好的,所以我有一个 PHP 脚本,它使用file_get_contents()
.
另一个页面大约需要 30 秒来加载(它是脚本的类型),我所需要的file_get_contents()
就是启动这个脚本。
问题是,file_get_contents()
它将在整个 30 秒内保持加载。阻止这种情况的唯一方法是关闭选项卡(关闭选项卡时,它调用的脚本仍然运行)。
那么,我怎样才能让它file_get_contents();
在 2 秒后关闭呢?
提前致谢
无法回答您的问题,但我建议改用cURLfile_get_contents
。
例子:
function get_url_contents($url) {
$crl = curl_init();
curl_setopt($crl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)');
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($crl, CURLOPT_CONNECTTIMEOUT, 5);
$ret = curl_exec($crl);
curl_close($crl);
return $ret;
}
您的问题可能来自超时:default_socket_timeout
但这似乎不合逻辑,因为 2 秒确实很少,我无法解释自己为什么有人会将其更改为 2 秒。默认值为 60 秒。
在手册页中,我们可以看到file_get_contents()
接受第三个参数,称为$context
如果我们能够微调我们的选项。从那里通过一些链接,我们到达了似乎是我们的人的HTTP 上下文选项:timeout
超时浮动
Read timeout in seconds, specified by a float (e.g. 10.5). By default the default_socket_timeout setting is used.
因此,您可以提供上下文或更改default_socket_timeout(第一个选项看起来不太容易破坏其他东西)。
免责声明:我没有测试过。
可能您可以在函数调用之前使用set_time_limit(2) 。file_get_contents