Hagamos un resumen rápido. PHP es un lenguaje interpretado, por lo que cada declaración se ejecuta una tras otra, por lo tanto, PHP tiende a enviar HTML a los navegadores en fragmentos, lo que reduce el rendimiento. Usando el almacenamiento en búfer de salida, el HTML generado se almacena en un búfer o en una variable de string y se envía al búfer para que se procese después de la ejecución de la última declaración en el script PHP.
Pero el búfer de salida no está habilitado de forma predeterminada. Para habilitar el almacenamiento en búfer de salida, se debe usar la función ob_start() antes de repetir cualquier contenido HTML en un script.
Sintaxis:
bool ob_start ()
Parámetros : la función puede aceptar un montón de parámetros opcionales de la siguiente manera:
- Función de devolución de llamada: este es un parámetro opcional que espera una función que toma el contenido del búfer de salida y devuelve una string que se enviará al navegador para su procesamiento. La función de devolución de llamada se usa generalmente para comprimir el contenido HTML.
- Tamaño de fragmento: este es otro parámetro opcional que establece el tamaño del búfer de salida del tamaño proporcionado y las salidas tan pronto como el búfer esté lleno o superado.
- Banderas: este es otro parámetro opcional que acepta una máscara de bits para controlar las operaciones que se pueden implementar en el búfer de salida. Este parámetro se pasa para restringir el acceso. Los permisos predeterminados dan acceso a la limpieza, el vaciado y la eliminación del búfer.
Tipo de devolución : esta función devuelve VERDADERO en caso de éxito, de lo contrario, FALSO.
El siguiente programa ilustra el funcionamiento de ob_start() en PHP:
<?php // PHP code to illustrate the working // of ob_start() Function function callback($buffer){ // Return Everything in CAPS. return (strtoupper($buffer)); } ob_start("callback"); echo "Hello Geek!"; ob_end_flush(); ?>
Producción:
HELLO GEEK!
Puntos importantes a tener en cuenta :
- Habilita el búfer de salida.
- Los indicadores de almacenamiento en búfer de salida pueden ser de cuatro tipos: PHP_OUTPUT_HANDLER_CLEANABLE (solo limpieza), PHP_OUTPUT_HANDLER_FLUSHABLE (solo descarga), PHP_OUTPUT_HANDLER_REMOVABLE (solo eliminar), PHP_OUTPUT_HANDLER_STDFLAGS (permitida cada operación).
- Los búferes de salida son apilables, por lo tanto, los métodos ob_start() anidados están permitidos y funcionan como se desea si se cierran o vacían secuencialmente.
Referencia :
http://php.net/manual/en/function.ob-start.php