php - 在 CLI PHP 脚本中使用输出缓冲时打印到终端

标签 php command-line

我正在使用命令行 PHP 离线构建一些文件。为了捕获脚本输出,我使用标准的 ob_start 东西:

ob_start();
// Echo lots of stuff
$content = ob_get_contents();
// Now the $content can be written to a file

但是,我还想向终端打印一些消息(例如,警告),同时将“主要输出”收集到缓冲区中。有没有办法做到这一点?似乎不可能暂停缓冲一段时间来打印终端消息,然后从它离开的地方继续缓冲。有什么解决方法吗?

最佳答案

只需使用 fputs() 写入 STDOUT 或 STDERR(这两个常量都包含文件指针资源):

ob_start();
echo 'Output buffer';
fputs(STDOUT, "Log message");
$x = ob_get_contents();
ob_end_clean();;

echo "X = $x";

关于php - 在 CLI PHP 脚本中使用输出缓冲时打印到终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1356285/

相关文章:

command-line - 通过命令行请求新的 Swarm 审查

javascript - 在输入上动态应用 JavaScript

java - 通过 java 应用程序使用 git

linux - 我如何将 sed 与 unicode 字符一起使用

php - 通过 PHP/Html 和 sql 更新 MySQL 条目

python - 是否有一个 Python 库可以简化 CLI 实用程序(如 Django 管理命令)的创建?

c - Valgrind 和 GDB 替代 Mac?

php - 无法在主目录中创建文件

php - 用 Electron VCRUNTIME140.dll 错误捆绑 PHP7

php - mysql函数的返回结果