Reputation: 3081
I start my script from command line and it outputs things as they happen but a week ago it stopped outputing and now outputs everything when script finishes. I have ob_start() but as I know this does not effect command line output.
Upvotes: 8
Views: 18977
Reputation: 81
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.
Upvotes: 6
Reputation: 2632
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";
?>
Upvotes: 6
Reputation: 2093
It'd be very helpful if you could post your script here, at least the relevant parts, but things I'd test are:
Outputting only at the end of the script seems a buffering problem.
Upvotes: 0