ob_end_clean
funkcja
Usuwa zawartość aktywnego bufora wyjścia i zamyka go — dane bufora są bezpowrotnie kasowane, nic nie trafia do przeglądarki.
ob_end_clean(): bool
ob_end_clean wyrzuca wszystko, co zebrał aktywny bufor, i zamyka go. Dane nie są wysyłane do klienta — to celowe odrzucenie wyjścia. Zwraca true przy powodzeniu lub false, gdy żaden bufor nie jest aktywny.
Używaj jej, gdy chcesz anulować cały wygenerowany do tej pory HTML — np. gdy przed wysłaniem jakichkolwiek danych wykryłeś błąd i wolisz wyświetlić czystą stronę błędu.
<?php
declare(strict_types=1);
ob_start();
echo '<html>... połowa strony ...';
// coś poszło nie tak
$blad = true;
if ($blad) {
ob_end_clean(); // wyrzuć wszystko
http_response_code(500);
echo 'Wystąpił błąd serwera.';
exit;
}
echo '</html>';
ob_end_flush(); // normalny koniec — wyślij bufor
Porównanie funkcji kończących bufor:
| Funkcja | Dane bufora | Bufor |
|---|---|---|
| ob_end_clean() | kasowane | zamknięty |
| ob_end_flush() | wysłane do klienta | zamknięty |
| ob_get_clean() | zwrócone jako string | zamknięty |
| ob_get_contents() | zwrócone jako string | pozostaje otwarty |