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.