gpt4 book ai didi

php - file_get_contents() 的更快替代方案

转载 作者:行者123 更新时间:2023-12-03 00:09:46 30 4
gpt4 key购买 nike

目前,我正在使用 file_get_contents() 将 GET 数据提交到网站数组,但在执行页面时出现此错误:

fatal error :超出最大执行时间 30 秒

我真正希望脚本做的就是开始加载网页,然后离开。每个网页可能需要最多 5 分钟才能完全加载,而我不需要它完全加载。

这是我目前拥有的:

        foreach($sites as $s) //Create one line to read from a wide array
{
file_get_contents($s['url']); // Send to the shells
}

编辑:为了消除任何混淆,该脚本用于启动其他服务器上的脚本,不返回任何数据。

编辑:我现在尝试使用 cURL 来实现这一目的,通过设置一秒的超时来使其发送数据然后停止。这是我的代码:

        $ch = curl_init($s['url']); //load the urls
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1); //Only send the data, don't wait.
curl_exec($ch); //Execute
curl_close($ch); //Close it off.

也许我设置了错误的选项。在我们说话的时候我正在浏览一些手册。只是给你一个更新。感谢迄今为止为我提供帮助的所有人。

编辑:啊,发现问题了。我使用的是 CURLOPT_CONNECTTIMEOUT 而不是 CURLOPT_TIMEOUT。哎呀。

但是现在,脚本没有触发。他们各自使用ignore_user_abort(TRUE);所以我无法理解这个问题

哈,划掉这个。现在可以工作了。非常感谢大家

最佳答案

有很多方法可以解决这个问题。

您可以使用cURL使用它的curl_multi_* 函数来异步执行请求。或者使用常见的 cURL 方式,但使用 1 作为超时限制,因此会请求并返回超时,但请求会被执行。

如果您没有安装 cURL,您可以继续使用 file_get_contents,但使用类似 ZendX_Console_Process_Unix 的东西来 fork 进程(不是很酷,但有效)这样您就可以避免每个请求之间的等待。

关于php - file_get_contents() 的更快替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2662926/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com