PHP输出到命令行

时间:2009-12-11 17:15:27

标签: php

我从命令行启动我的脚本,它会在事件发生时输出,但一周前它停止输出,现在在脚本完成时输出所有内容。我有ob_start(),但据我所知,这不会影响命令行输出。

3 个答案:

答案 0 :(得分:5)

您需要删除ob_start()...在命令行上尝试此代码,它将一次打印所有文本:

<?
ob_start();
echo "test\n";
sleep(10);
echo "buffer\n";
?>

答案 1 :(得分:1)

一种简单的方法是在php中创建一个这样的函数:

function console_log($message) {
    $STDERR = fopen("php://stderr", "w");
              fwrite($STDERR, "\n".$message."\n\n");
              fclose($STDERR);
}

其中$ message是所需的命令行输出。然后,只要在您想要输出的地方调用该函数,然后传递您想要打印的任何内容即可。

答案 2 :(得分:0)

如果您可以在此处发布您的脚本,至少是相关部分,那将非常有用,但我要测试的是:

  • 你开启了缓冲吗?
  • 你是在运行这个过程,比如nohup还是其他可以缓冲它的东西?
  • 您是否更改了其他任何缓冲设置?

仅在脚本末尾输出似乎是一个缓冲问题。