(PHP 4, PHP 5, PHP 7, PHP 8)
ob_start — Ausgabepufferung aktivieren
$callback
= null
, int $chunk_size
= 0, int $flags
= PHP_OUTPUT_HANDLER_STDFLAGS
): boolDiese 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.
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:
buffer
phase
PHP_OUTPUT_HANDLER_*
-Konstanten
.
Weitere Einzelheiten sind unter
Flags Passed To Output Handlers
zu finden.
Wenn callback
false
zurückgibt, wird der
Inhalt des Puffers zurückgegeben.
Weitere Einzelheiten sind unter
Output Handler Return Values zu finden.
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 callback
s
(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:
Konstante | Funktionen |
---|---|
PHP_OUTPUT_HANDLER_CLEANABLE |
ob_clean() |
PHP_OUTPUT_HANDLER_FLUSHABLE |
ob_end_flush() |
PHP_OUTPUT_HANDLER_REMOVABLE |
ob_end_clean(), ob_end_flush(), ob_get_clean(), ob_get_flush() |
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);
?>