ob_get_contents - php buffer echo
¿Qué es el buffer de salida? (4)
¿Qué es el buffer de salida y por qué uno lo usa en PHP?
Las funciones de control de salida le permiten controlar cuándo se envía la salida desde el script. Esto puede ser útil en varias situaciones diferentes, especialmente si necesita enviar encabezados al explorador después de que su script haya comenzado a generar datos. Las funciones de control de salida no afectan a los encabezados enviados usando header () o setcookie (), solo funciones como echo () y datos entre bloques de código PHP.
http://php.net/manual/en/book.outcontrol.php
Más recursos:
Como su nombre lo sugiere, el búfer de memoria se usa para administrar cómo aparece el resultado del script.
Aquí hay un tutorial muy bueno para el tema
Almacenamiento en búfer de salida para desarrolladores web, una guía para principiantes :
Sin el almacenamiento en búfer de salida (el valor predeterminado), su HTML se envía al navegador en fragmentos a medida que PHP procesa a través de su secuencia de comandos. Con el buffer de salida, su HTML se almacena en una variable y se envía al navegador como una sola pieza al final de su script.
Ventajas del buffer de salida para desarrolladores web
- La activación del almacenamiento en búfer de salida por sí solo disminuye la cantidad de tiempo que lleva descargar y representar nuestro HTML porque no se envía al navegador en fragmentos, ya que PHP procesa el HTML.
- Todas las cosas sofisticadas que podemos hacer con cadenas de PHP, ahora podemos hacer con toda nuestra página HTML como una variable.
- Si alguna vez se encontró con el mensaje "Advertencia: no se puede modificar la información del encabezado: los encabezados ya enviados por (salida)" al configurar las cookies, le complacerá saber que el buffer de salida es su respuesta.
El buffer de salida es utilizado por PHP para mejorar el rendimiento y realizar algunos trucos.
Puede hacer que PHP almacene todos los resultados en un búfer y generarlos todos a la vez, mejorando el rendimiento de la red.
Puede acceder al contenido del búfer sin enviarlo al navegador en determinadas situaciones.
Considera este ejemplo:
<?php
ob_start( );
phpinfo( );
$output = ob_get_clean( );
?>
El ejemplo anterior captura el resultado en una variable en lugar de enviarlo al navegador. output_buffering está desactivado por defecto.
- Puede utilizar el almacenamiento en búfer de salida en situaciones en las que desee modificar encabezados después de enviar contenido.
Considera este ejemplo:
<?php
ob_start( );
echo "Hello World";
if ( $some_error )
{
header( "Location: error.php" );
exit( 0 );
}
?>