Blog de Gonzalo

BÚFER DE SALIDA

En php se puede almacenar la salida de datos en el búfer, como en la mayoría de lenguajes de programación.
Para activar dicho búfer hay que usar la función ob_ststart y mientras dicho almacenamiento esté activo, no se enviará ninguna salida desde el script (aparte de cabeceras); en su lugar la salida se almacenará en un búfer interno.
Hay que tener cuidado con algunos servidores web como apache ya que cambian en directorio de trabajo de un script cuando se invoca a la función de llamada de retorno. Se puede cambiar de nuevo mediante, por ejemplo, chdir(dirname($_SERVER['SCRIPT_FILENAME'])) en la función de llamada de retorno.
Para obtener el contenido del hay que usar la función ob_get_contents, que se puede guardar en una variable y al hacer echo o print muestra el contenido, por ejemplo el html de una web. Con la función ob_clean se limpia y elimina el y para limpiar, eliminar el búfer hay que usar la función ob_end_clean. Si solo se quiere vaciar el hay que usar la función ob_flush y con la función se elimina el búfer y deshabilita el almacenamiento en el mismo.
Las utilidades más comunes para el búfer es un sistema de cacheado sencillo, comprimir el resultado con gzip o guardar el html y usarlo con alguna librería que genera pdf conviertiendo el html, etc...

Compartir en twitter