当前脚本完成使用curl时如何运行php? 不能使用shell或set_time_limit来循环脚本。
编辑: 我希望能够使用curl来调用相同的脚本,但是当我使用curl_exec时,我不希望脚本等到curl完成,我只是想让它调用页面并继续前进而不等待curl完成
编辑:
在脚本开头使用此代码
ignore_user_abort(true);
header("Content-Length: 0");
header("Connection: close");
flush();
然后使用curl使脚本调用它自己在Windows上工作,但在Linux上它没有!又名,我希望curl调用页面而不是等待回复
由于
答案 0 :(得分:3)
您希望能够在不等待的情况下运行CURL请求。
通常,您将启动一个新线程来运行其中的CURL请求,但PHP doesn't have support for multithreading。
如果您允许使用popen或proc_open,则可以运行后台进程。您可以运行CLI PHP脚本来执行CURL请求。
另一个想法是在DB表中写入请求,并且每隔X分钟对表执行一次cron CLI脚本轮询并执行任何挂起的请求。
答案 1 :(得分:1)
找到它:
将其添加到脚本的开头:
ignore_user_abort(true);
header("Content-Length: 256");
header("Connection: close");
echo(str_repeat(' ',256));
@ob_flush();
@flush();
@ob_end_flush();
然后通过curl从另一个2_script调用此1_script允许其他2_script完成其进程而无需等待1_script完成! 。只是curl在收到256个bye之前不会读取“connection:close”标题,所以我们通过空格发送它们:)