我整天都在乱用cURL,并且不能让它以任何方式表现,因为我读过其他人的工作。无论我怎么做,我的整个网站都会挂起,直到它完成处理。我甚至尝试过运行它:
exec("curl -d $params $url -k &");
它仍然没有作为后台进程运行。现在,如果我在shell中执行此操作,那很好。我现在完全失去了。我今天尝试了很多方法,无法将其作为后台进程运行。我现在非常沮丧,因为它不应该像我应该的那样工作,我可能会遗漏一些小东西,但我找不到它。代码很简单(暂时):
$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同时处理它们,但我有让它在后台运行,而且我只是没有正确地执行它。
答案 0 :(得分:3)
exec(“curl -d $ params $ url> / dev / null 2>& 1”);