Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
2秒后PHP停止脚本文件\u get\u contents()_Php - Fatal编程技术网

2秒后PHP停止脚本文件\u get\u contents()

2秒后PHP停止脚本文件\u get\u contents(),php,Php,好的,我有一个PHP脚本,它使用file\u get\u contents()加载另一个页面 另一个页面加载大约需要30秒(它是脚本类型),我只需要文件\u get\u contents()就可以启动这个脚本 问题是,文件\u get\u contents()将在整个30秒钟内保持加载状态。停止此操作的唯一方法是关闭选项卡(关闭选项卡时,它调用的脚本仍在运行) 那么,我如何才能得到它,使文件获得内容()在2秒后关闭 提前感谢无法回答您的问题,但我建议改用文件获取内容 例如: function g

好的,我有一个PHP脚本,它使用
file\u get\u contents()
加载另一个页面

另一个页面加载大约需要30秒(它是脚本类型),我只需要
文件\u get\u contents()
就可以启动这个脚本

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

那么,我如何才能得到它,使
文件获得内容()在2秒后关闭


提前感谢

无法回答您的问题,但我建议改用
文件获取内容

例如:

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\u socket\u timeout

但这似乎不符合逻辑,因为2秒真的很少,我无法解释为什么有人会把它改为2秒。默认值为60秒。

可能是您可以在调用
file\u get\u contents
函数之前使用。

在中,我们可以看到
file\u get\u contents()
接受名为
$context
的第三个参数,我们可以微调选项。通过以下链接,我们找到了
timeout
似乎是我们的人:

超时浮动

Read timeout in seconds, specified by a float (e.g. 10.5).

By default the default_socket_timeout setting is used.
因此,您可以提供上下文或更改(第一个选项看起来不太容易破坏其他内容)


免责声明:我还没有测试过。

为什么要使用file\u get\u contents()?如果您只是使用它来运行另一个脚本,为什么不使用curl并将curl的输出路由到null呢。或者从第二个脚本中删除输出,并放入忽略用户中止(true);在第二个脚本中,即使您取消/中止上一个命令,它也会继续运行。由于php是一种自上而下的语言,下一个进程将始终等待上一个进程完成,因此您的文件_get_contents()必须在继续之前完成。检查非常感谢HamZa:)我还将添加CURLOPT_FOLLOWLOCATION。是的,OP可以添加他想要的内容。这是我在Google Chrome扩展中使用的最小版本。例如,我意识到,如果不设置
用户代理
,一些网站根本不会返回数据。
设置时间限制
将设置整个脚本的最大执行时间限制,而不仅仅是一块代码或一个函数,witch可能会中断脚本的执行流,如果脚本很大或在高负载环境中,但没有设置适当的执行时间限制。