如何解决cURL不在后台运行脚本
| 我整天都在忙着使用cURL,但由于我已经读过其他人正在使用它,所以无法使其以任何方式运行。无论我怎么做,我的整个网站都将挂起,直到完成处理为止。我什至尝试像这样运行它:exec(\"curl -d $params $url -k &\");
它仍然没有作为后台进程运行。现在,如果我在外壳中执行此操作,就可以了。我现在完全迷路了。我今天已经尝试了很多方法,但无法将其作为后台进程运行。我现在很沮丧,以至于它可能无法正常工作,因为我可能丢失了一些小东西,但我找不到它。代码很简单(目前):
$url = \"path_to_script.php\";
$params = \"id=$id&etc=etc\";
$command = \"curl -d \\\"$params\\\" \\\"$url\\\" -k &\";
exec($command);
被调用的脚本是这样的:
$id = $_POST[\'id\'];
$etc = $_POST[\'etc\'];
$temp = file_get_contents(\"remote file\");
$fp = fopen(\'test.txt\',\'w\');
fwrite($fp,$temp);
fclose($fp);
它正常工作,除了file_get_contents需要30秒钟以上才能完成,并且整个服务器都被冻结,直到完成为止。重复大约70次。为什么它不作为后台进程运行?!?!
理想情况下,我想使用curl_multi来同时处理它们,但是我必须让它在后台运行,只是不能正确执行。
解决方法
Michael Mior是正确的,您需要将输出重定向到某个地方。如果您不在乎它的去向,则应执行以下操作:
exec(\“ curl -d $ params $ url> / dev / null 2>&1 \”);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。