php exec尾部跟随命令并保持输出

时间:2018-10-19 07:14:59

标签: php

我想在php页面上输出日志文件,包括即将发布的内容。

像这样,但是php不允许。

header('Content-Type: text/plain;');
flush();
exec('docker logs server --follow', 'php://output'); // Follow log output

长时间长时间执行输出命令的最佳实践是什么?

1 个答案:

答案 0 :(得分:0)

我不知道它是否可以工作,但是我会尝试这样的事情:

// Turn off output buffering
ini_set('output_buffering', 'off');
// Turn off PHP output compression
ini_set('zlib.output_compression', false);
// Implicitly flush the buffer(s)
ini_set('implicit_flush', true);
ob_implicit_flush(true);
// Clear, and turn off output buffering
while (ob_get_level() > 0) ob_end_clean();
system('docker logs server --follow');

system直接将输出发送到缓冲区,并且ob_implicit_flush将在发送输出时进行刷新。您可能需要打开gzip和其他东西。

我曾经为服务器日志做过一次-tail,但是那是几年前的事,所以我不记得自己是怎么做的。它在iFrame中,因此我可以将其显示在网页上。我记得那个。