PHP | funciones ob_end_flush(), ob_end_clean()

En el artículo anterior sobre ob_start() , aprendimos cómo iniciar el búfer de salida; ahora necesitamos finalizar el almacenamiento en búfer de salida y enviar todo el HTML al navegador para que se procese. Podemos hacer esto con la ayuda de las funciones ob_end_flush() y ob_end_clean().

función ob_end_flush()

Sintaxis:

bool ob_end_flush ()

Parámetros : La función no toma ningún parámetro.

Tipo de retorno : esta función envía el HTML almacenado al navegador y desactiva el almacenamiento en búfer de salida. En caso de éxito, se devuelve VERDADERO, de lo contrario, FALSO.

función ob_end_clean()

Sintaxis:

bool ob_end_clean()

Parámetros : La función no toma ningún parámetro.

Tipo de retorno : esta función limpia el HTML almacenado y desactiva el almacenamiento en búfer de salida. En caso de éxito, se devuelve VERDADERO, de lo contrario, FALSO.

El siguiente programa ilustra el funcionamiento de ob_end_flush() y ob_end_clean() en PHP:

<?php
  
// PHP code to illustrate the working of 
// ob_end_flush() and ob_end_clean()
  
// ob_end_flush()
ob_start();
echo "Hello Geek!"; //This will get printed.
ob_end_flush();
  
// ob_end_clean() 
ob_start();
echo "Hi Geek!";  //This will not get printed.
ob_end_clean();
  
?>

Producción:

Hello Geek!

Puntos importantes a tener en cuenta :

  • ob_end_flush() u ob_end_clean() no son funciones necesarias, es decir, si un desarrollador alguna vez usa ob_start() sin usar las funciones mencionadas, la página web parecerá estar funcionando correctamente mostrando todos los contenidos, pero lo que sucede en la parte posterior no está optimizado. Cuando PHP encuentra ob_start(), asigna un nuevo búfer de salida y concatena cada HTML que aparece después, si no hay una función de finalización, al llegar al final, los datos almacenados se envían al navegador como una acción predeterminada. Los desarrolladores pueden crear páginas web optimizadas finalizando el almacenamiento en búfer de salida cuando no sea necesario, manteniendo así limpia la pila global.
  • Ahí surge una pregunta, si usamos ob_end_clean() para limpiar todo el búfer de salida, ¿por qué incluso usar el almacenamiento en búfer de salida? Usamos ob_end_clean() con ob_get_contents() que primero obtiene el contenido como una string y luego el búfer de salida se limpia y apaga, esto borra la pila global y mantiene todo el contenido en una variable para ser procesado más.

Referencia :

Publicación traducida automáticamente

Artículo escrito por PronabM y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *