Ausgabepufferung

aitsu schaltet zu Beginn der Ausführung die Ausgabepufferung mit...


<?php ob_start(); ?>

...ein und gibt den Ausgabepuffer ganz am Ende der Renderingphase mit...


<?php ob_end_flush(); ?>

an den Browser aus.

Dadurch wird es Modulen möglich, bei Bedarf den Puffer zu verwerfen und neue Headers zu senden. Hilfreich ist das vorwiegend in folgenden Fällen:

  • Bei der Weiterleitung, welche aus einem Modul initiiert wird. Dabei muss kein Javascript mehr eingesetzt werden und es ist auch nicht notwendig, mehr als nur einen Relocation-Header zu senden.
  • Beim Download von Inhalten, die in einem Modul erzeugt werden. Zum Beispiel bei der Erstellung eines PDFs zur Laufzeit, welches von einem Modul ausgegeben wird. Oder bei der Erstellung von CSV-Dateien, die zum Download angeboten werden.

Um in einem Modul den Puffer zu löschen und zum Beispiel eine Weiterleitung vorzunehmen, reichen folgende Zeilen aus:


<?php
ob_end_clean
(); // Ausgabenpufferung stoppen und Puffer verwerfen.
header("Location: /kategorie/datei.html");
exit(
0);
?>