L output buffering cattura l output prima di inviarlo al browser.
Base
ob_start(); // Inizia buffering
echo "Questo viene catturato";
$content = ob_get_contents(); // Leggi contenuto
ob_end_clean(); // Pulisci buffer senza inviare
// oppure
ob_end_flush(); // Invia e pulisciCattura template
function renderTemplate($file, $data) {
extract($data);
ob_start();
include $file;
return ob_get_clean();
}
$html = renderTemplate("email.php", ["name" => "Mario"]);Uso con header()
ob_start();
include "page.php";
// Posso ancora usare header() qui
header("X-Custom: value");
ob_end_flush();