Rob*_*Rob 13 php curl file-get-contents curl-multi
目前我正在使用file_get_contents()将GET数据提交到一个站点数组,但是在执行页面时我收到此错误:
致命错误:超出最长执行时间30秒
我真正希望脚本做的就是开始加载网页,然后离开.每个网页最多可能需要5分钟才能完全加载,我不需要它完全加载.
这是我目前拥有的:
foreach($sites as $s) //Create one line to read from a wide array
{
file_get_contents($s['url']); // Send to the shells
}
Run Code Online (Sandbox Code Playgroud)
编辑:为了清除任何混淆,此脚本用于在其他服务器上启动脚本,不返回任何数据.
编辑:我现在正试图使用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.
Run Code Online (Sandbox Code Playgroud)
也许我把选项设置错了.在我们发言时,我正在查看一些手册.只是给你一个更新.谢谢你们所有帮助我的人.
编辑:啊,发现了问题.我使用的是CURLOPT_CONNECTTIMEOUT而不是CURLOPT_TIMEOUT.哎呦.
但是现在,脚本没有触发.它们每个都使用ignore_user_abort(TRUE); 所以我无法理解这个问题
哈,划伤那个.现在工作.非常感谢大家
有很多方法可以解决这个问题.
您可以使用cURL及其curl_multi_*函数来异步执行请求.或者使用cURL常用方法,但使用1作为超时限制,因此它将请求并返回超时,但请求将被执行.
如果你没有安装cURL,你可以使用像ZendX_Console_Process_Unix之类的东西继续使用file_get_contents但是分叉进程(不是那么酷,但有效),这样你就可以避免每个请求之间的等待.
归档时间: |
|
查看次数: |
19595 次 |
最近记录: |