¿Cuál es el uso de ob_start() en php?
¿Se ob_start()
utiliza para output buffering
que los encabezados se almacenen en el búfer y no se envíen al navegador? ¿Estoy teniendo sentido aquí? Si no, ¿por qué deberíamos utilizar ob_start()
?
Piense en ob_start()
decir "Empiece a recordar todo lo que normalmente se generaría, pero no haga nada con ello todavía".
Por ejemplo:
ob_start();
echo("Hello there!"); //would normally get printed to the screen/output to browser
$output = ob_get_contents();
ob_end_clean();
Hay otras dos funciones con las que normalmente lo emparejas: ob_get_contents()
, que básicamente te proporciona todo lo que se ha "guardado" en el búfer desde que se activó con ob_start()
, y luego ob_end_clean()
o ob_flush()
, que deja de guardar cosas y descarta lo que se guardó, o deja de guardar. y lo genera todo a la vez, respectivamente.
Utilizo esto para poder salir de PHP con una gran cantidad de HTML pero no renderizarlo. Me evita tener que almacenarlo como una cadena que desactiva la codificación de colores IDE.
<?php
ob_start();
?>
<div>
<span>text</span>
<a href="#">link</a>
</div>
<?php
$content = ob_get_clean();
?>
En lugar de:
<?php
$content = '<div>
<span>text</span>
<a href="#">link</a>
</div>';
?>