ob_start

funkcja

Włącza buforowanie wyjścia — wszystko co echo/print wyśle do przeglądarki trafia zamiast tego do bufora w pamięci.

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

ob_start uruchamia bufor wyjścia (output buffering). Od momentu wywołania wszystkie dane, które normalnie trafiłyby bezpośrednio do przeglądarki (echo, print, wynik wyrażeń), są zatrzymywane w pamięci. Możesz je potem odczytać funkcją ob_get_clean(), ob_get_contents() lub po prostu wyrzucić przez ob_end_clean().

Typowe zastosowania:

  • przechwycenie wyjścia do zmiennej (szablony, PDF, maile HTML),
  • wysłanie nagłówków HTTP po echo — bufor daje ci czas zanim dane faktycznie polecą do klienta.

Bufory można zagnieżdżać — każde ob_start() otwiera nowy poziom, każde ob_end_* zamyka jeden.

<?php
declare(strict_types=1);

ob_start(); // włącz buforowanie

echo '<h1>Witaj!</h1>';
echo '<p>To jest buforowany HTML.</p>';

$html = ob_get_clean(); // pobierz i wyczyść bufor

// $html zawiera teraz cały wygenerowany HTML — nic nie trafiło do przeglądarki
echo 'Długość bufora: ' . strlen($html) . ' znaków.';
// wynik: Długość bufora: 46 znaków.
📘 Naucz się w lekcji →