将 PHP 脚本输出保留到屏幕上ob_start

Keep PHP script output to screen with ob_start

提问人:guyaloni 提问时间:6/16/2023 最后编辑:guyaloni 更新时间:6/16/2023 访问量:56

问:

我有一个脚本,我需要将其输出保存到日志文件中。 到目前为止,我有这个实现:

ob_start();
   :
   :
$content = ob_get_clean();
Storage::disk('local')->put($logfilePath, $content);

问题是脚本执行时间比较长,我需要能够同时在屏幕上看到输出。

我一直在寻找一种方法来做到这一点,但找不到任何优雅的解决方案。
有什么想法吗?

更新:
我正在使用 Laravel 框架,该过程是一个实例。
Command

php laravel 输出缓冲 ob-start

评论

1赞 ADyson 6/16/2023
你使用的是框架吗?如果是这样,请标记它
0赞 Markus Zeller 6/16/2023
奇怪的方法。您可以实现用于直接保存和输出的日志记录。如果连接运行时间较长,请考虑使用分块标头。
2赞 mousetail 6/16/2023
最简单的方法是使用多个调用,每个调用都记录请求的某些部分。您还需要分块标头ob_start(), ob_get_clean()
3赞 Álvaro González 6/16/2023
我刚刚看到它不是普通的 PHP,而是 Laravel。我不使用该框架,但我肯定您的代码首先不应该发出调用。所有框架都有特定的机制来发出输出,而 echo 会干扰它。echo
1赞 CBroe 6/16/2023
“该进程是一个命令实例” - 所以你需要在控制台上看到输出,而不是作为网站的一部分?然后@mousetail所说的,减去分块标头部分(因为这仅适用于需要通过 HTTP 将输出发送到客户端的情况。

答: 暂无答案