使用ob_flush输出数据会产生通知


Outputting data with ob_flush produces notice

我有一个大约需要400秒才能完成的脚本。当脚本循环执行某些任务时,我目前也在使用此函数来输出日志。

function CLI_LOG($message){
    echo $message."'n";
    ob_end_flush(); 
    ob_flush(); 
    flush(); 
    ob_start(); 
}

在我的script.php顶部,我有ob_start();

这在浏览器中运行良好!尽管当我使用在命令行上运行它时

php -f script.php

每次我使用该功能时,我都会收到这两个错误

Notice: ob_flush(): failed to flush buffer. No buffer to flush in script.php on line 127

PHP Notice: ob_flush(): failed to flush buffer. No buffer to flush in script.php on line 127

行127保存这段代码

ob_flush();

我甚至试图使用error_reporting(0);error_reporting(E_ALL & ~E_NOTICE);来抑制这些错误,但运气不好?

在ob_end_flush()之后执行ob_flush。。。所以你没有更多的缓冲区。

function CLI_LOG($message){
    echo $message."'n";
    ob_flush();
    flush();
}

如果不结束前一个缓冲区,则无需启动另一个缓冲。