Output buffering
Output buffering is a PHP mechanism that controls the output of a script. Imagine we write down echo 'test';
within our PHP script and do not see anything on screen. How is that possible? The answer is output buffering.
The following piece of code is a simple example of output buffering:
<?php ob_start(); sleep(2); echo 'Chunk#1' . PHP_EOL; sleep(3); ob_end_flush(); ob_start(); echo 'Chunk#2' . PHP_EOL; sleep(5); ob_end_clean(); ob_start(); echo 'Chunk#3' . PHP_EOL; ob_end_flush(); ob_start(); sleep(5); echo 'Chunk#4' . PHP_EOL; //Chunk#1 //Chunk#3 //Chunk#4
When executed within the CLI environment, we will first see Chunk#1
come out after a few seconds, then a few seconds after, we will see Chunk#3
come out, and, finally, a few more seconds after, we will see Chunk#4
come out. Chunk#2
would never be output. This is quite a concept, given that we are used to having the echo
construct outputting stuff just after it is called.
There are several output buffering related...