I'm using command line PHP to build some files offline. To capture the script output I use the standard ob_start stuff:
ob_start();
// Echo lots of stuff
$content = ob_get_contents();
// Now the $content can be written to a file
However, I also want to print some messages to the terminal (for instance, warnings) while collecting the "main output" into the buffer. Is there a way to do this? It doesn't seem to be possible to pause the buffering for a while to print the terminal messages, and then continue the buffering from where it was left. Is there any workaround for this?
Just write to STDOUT or STDERR (both constants containing file pointer resources) using fputs():
ob_start();
echo 'Output buffer';
fputs(STDOUT, "Log message");
$x = ob_get_contents();
ob_end_clean();;
echo "X = $x";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With