好的,我有一个PHP脚本,可以使用file_get_contents()加载另一个页面。

另一页加载大约需要30秒(它是脚本的类型),而我需要的是file_get_contents()是启动此脚本的方法。

问题是,file_get_contents()将在整个30秒内保持加载状态。停止此操作的唯一方法是关闭选项卡(当关闭选项卡时,它调用的脚本仍会运行)。

那么,如何获取它,以便file_get_contents();在2秒钟后关闭?

提前致谢

最佳答案

无法回答您的问题,但我建议您使用cURL而不是file_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秒。

关于2秒后PHP停止脚本file_get_contents(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16278204/

10-11 10:47