# ob_start

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

ob_start — Ausgabepufferung 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 `callback` `false` 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 `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_flush()
  `PHP_OUTPUT_HANDLER_REMOVABLE` | ob_end_clean(), ob_end_flush(), ob_get_clean(), ob_get_flush()

  > Hinweis: Vor PHP 8.4.0 konnte der Parameter flags auch die Statusflags des Ausgabe-Handlers setzen.

### 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

- ob_get_contents() - Liefert den Inhalt des Ausgabepuffers
- ob_end_clean() - Löscht den Inhalt des aktiven Ausgabepuffers und deaktiviert ihn
- ob_end_flush() - Leert (sendet) den Rückgabewert des aktiven Ausgabe-Handlers und deaktiviert den aktiven Ausgabepuffer
- ob_implicit_flush() - Schaltet die implizite Ausgabe ein bzw. aus
- ob_gzhandler() - ob_start callback function to gzip output buffer
- ob_iconv_handler() - Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)
- mb_output_handler() - Callback function converts character encoding in output buffer
- ob_tidyhandler() - ob_start callback function to repair the buffer

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open