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()