我正在使用Laravel 5进行开发。
我有这样的结构:
代码里面的:
exec("curl http://localhost/public/action/test");
http://localhost/action/ {param} page:
代码里面的:
$rand = rand(1, 5);
sleep($rand);
Storage::append('result.txt', 'Time: ' . time() . '; Rand: ' . $rand . "; RowId: " . $id);
return 'Time: ' . time() . '; Rand: ' . $rand . "; RowId: " . $id;
如果我在cmd curl http://localhost/public/action/test
中运行此命令,一切正常,result.txt文件已创建,我从return语句得到响应。如果我尝试从http://localhost/some/random/url的exec()应用程序运行,似乎" action / {param} page"根本没有执行。
P.S。
为什么我没有使用curl_exec()
,因为我尝试创建类似于多线程的东西,因为我知道exec()
在另一个进程中执行,但curl_exec()
没有。
P.S.S。 为什么我不使用pthread库,因为无法将我们的项目切换到7.2 php版本。
答案 0 :(得分:1)
你不应该这样使用卷曲。
在没有exec
的情况下使用CURL:
http://php.net/manual/en/curl.examples-basic.php
您正在使用作曲家,因此您也可以使用https://github.com/guzzle/guzzle