从PHP exec()实时捕获bash输出


Capture bash output in real-time from PHP exec()

我正在运行这样的命令:

exec("grunt build --target=prod", $output, $status);

这只是在文件夹中运行grunt并构建它。输出被毫无问题地捕获。但是,这些都在最后被转储,并且咕哝构建可能需要一些时间才能发生。

我想知道我是否可以捕获输出,因为它发生,并能够实时回显它。

你知道这是怎么回事吗?

您应该使用system(),这样您就可以捕获您运行的命令的输出…

如果您将调用赋值给一个变量,您将获得输出的最后一行,您还将获得整个输出,参见:

$lastLine = system("grunt build --target=prod", $output);
print_r($output); // to get entire output

output_buffering一起,您可以一次刷新一行输出