ob_start

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_startAusgabepufferung aktivieren

Beschreibung

ob_start(?callable$callback = null, int$chunk_size = 0, int$flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool

Diese Funktion aktiviert die Ausgabepufferung. Während die Ausgabepufferung aktiv ist, werden Skriptausgaben nicht direkt an den Client weitergegeben, sondern in einem internen Puffer gesammelt. Welche Ausgaben genau betroffen sind, ist unter What Output Is Buffered? beschrieben.

Ausgabepuffer können verschachtelt werden, d. h. ob_start() kann erneut aufgerufen werden, während bereits ein anderer Puffer aktiv ist. Sind mehrere Ausgabepuffer aktiv, wird die Ausgabe in der Reihenfolge der Verschachtelung durch jeden dieser Puffer gefiltert. Siehe Nesting Output Buffers für weitere Einzelheiten.

Eine ausführliche Beschreibung der Ausgabepuffer ist unter User-Level Output Buffers zu finden.

Parameter-Liste

callback

Optional kann ein callback-Callable angegeben werden. Dieses kann auch durch Übergabe von null umgangen werden.

callback wird aufgerufen, wenn der Ausgabepuffer geleert (gesendet), bereinigt oder am Ende des Skripts geleert wird.

Die Signatur von callback ist wie folgt:

handler(string$buffer, int$phase = ?): string
buffer
Der Inhalt des Ausgabepuffers.
phase
Eine Bitmaske von PHP_OUTPUT_HANDLER_*-Konstanten . Weitere Einzelheiten sind unter Flags Passed To Output Handlers zu finden.

Wenn callbackfalse zurückgibt, wird der Inhalt des Puffers zurückgegeben. Weitere Einzelheiten sind unter Output Handler Return Values zu finden.

Warnung

Wenn eine der folgenden Funktionen innerhalb eines Ausgabe-Handlers aufgerufen wird, führt dies zu einem schwerwiegenden Fehler: ob_clean(), ob_end_clean(), ob_end_flush(), ob_flush(), ob_get_clean(), ob_get_flush(), ob_start().

Weitere Einzelheiten zu callbacks (Ausgabe-Handler) sind unter Output Handlers und Working With Output Handlers zu finden.

chunk_size

Wird der optionale Parameter chunk_size übergeben, dann wird der Puffer nach jedem Codeblock geleert, der zu einer Ausgabe führt, durch die der Puffer die Größe von chunk_size erreicht oder überschreitet. Der Vorgabewert 0 bedeutet, dass die gesamte Ausgabe gepuffert wird, bis der Puffer ausgeschaltet wird. Weitere Einzelheiten sind unter Buffer Size zu finden.

flags

Beim Parameter flags handelt es sich um eine Bitmaske, die die Operationen steuert, die mit dem Ausgabepuffer durchgeführt werden können. Die Vorgabe ist, zu erlauben, dass Ausgabepuffer bereinigt, geleert und entfernt werden dürfen, was ausdrücklich mit den Flags für die Steuerung des Ausgabepuffers . eingestellt werden kann. Weitere Einzelheiten sind unter Operations Allowed On Buffers zu finden.

Jedes Flag steuert den Zugriff auf einen Satz von Funktionen, wie im Folgenden beschrieben:

KonstanteFunktionen
PHP_OUTPUT_HANDLER_CLEANABLEob_clean()
PHP_OUTPUT_HANDLER_FLUSHABLEob_end_flush()
PHP_OUTPUT_HANDLER_REMOVABLEob_end_clean(), ob_end_flush(), ob_get_clean(), ob_get_flush()

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Beispiele

Beispiel #1 Beispiel einer benutzerdefinierten Callback-Funktion

<?php

function callback($buffer)
{
// ersetzt alle Äpfel mit Birnen
return (str_replace("Äpfel", "Birnen", $buffer));
}

ob_start("callback");

?>
<html>
<body>
<p>Das ist wie Äpfel mit Birnen zu vergleichen.</p>
</body>
</html>
<?php

ob_end_flush
();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<html> <body> <p>Das ist wie Birnen mit Birnen zu vergleichen.</p> </body> </html>

Beispiel #2 Erzeugen eines nicht löschbaren Ausgabepuffers

<?php

ob_start
(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_REMOVABLE);

?>

Siehe auch

To Top