开发者

PHP output to command line

I start my script from command line and it outputs things as they happen but a week ago it开发者_JAVA技巧 stopped outputing and now outputs everything when script finishes. I have ob_start() but as I know this does not effect command line output.


An easy way to do it is to create a function in php like this:

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

where $message is the desired output to command line. Then simply call the function wherever you would like to output and pass in whatever you want it to print.


You need to remove ob_start()... try this code on the command line, and it will print the text all at once:

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


It'd be very helpful if you could post your script here, at least the relevant parts, but things I'd test are:

  • Did you turn on buffering?
  • Are you running the process in something like a nohup or something else that may be buffering it?
  • Did you change any other buffering settings?

Outputting only at the end of the script seems a buffering problem.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜