Activar el almacenamiento en búfer de la salida en PHP

06/03/2023

Esta función activará el almacenamiento en búfer de la salida. 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.

El contenido de este búfer interno se puede copiar a una variable de tipo string usando ob_get_contents(). Para producir la salida de lo almacenado en el búfer interno se ha de usar ob_end_flush(). De forma alternativa, ob_end_clean() desechará de manera silenciosa el contenido del búfer. Aunque después más abajo indico el uso de la función ob_get_clean().

Archivo prueba.php:

<?php

function callback($bufer)
{
  // reemplazar todas las manzanas por naranjas
  return (str_replace("manzanas", "naranjas", $bufer));
}

ob_start("callback");

?>

<html>
<body>
<p>Es como comparar manzanas con naranjas.</p>
</body>
</html>

<?php
ob_end_flush();
?>

El resultado del ejemplo sería:

<html>
<body>
<p>Es como comparar naranjas con naranjas.</p>
</body>
</html>

Este código se va a utilizar después para el caso de crear un plugin que utiliza un formulario para enviar datos:

function myContactFormRender() {
  ob_start();
  myContactForm();
  return ob_get_clean();
}

En este último caso la función ob_get_clean() obtiene el contenido del búfer actual y elimina el búfer de salida actual.

Fuente: Manual de PHP en php.net sobre la función ob_start()

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.