ob_clean în PHP

Golește bufferul de ieșire curent, fără să trimită conținutul și fără să îl închidă.

Sintaxă
ob_clean(): bool

Ce face ob_clean

ob_clean aruncă tot ce s-a adunat în buffer până acum. Bufferul rămâne deschis, deci ce afișezi după apel se adună din nou în el.

Este util când ai început să generezi o pagină și apare o eroare: ștergi ce ai afișat și pui în loc un mesaj de eroare.

Ce returnează

true la succes, false (cu o notificare) dacă nu există buffer deschis.

Exemple

Exemplul 1: Înlocuirea paginii la o eroare

<?php
ob_start();
echo "<h1>Raport vânzări</h1>";
echo "<table>...";

$eroare = true;
if ($eroare) {
    ob_clean();
    echo "<p>Raportul nu poate fi generat acum.</p>";
}

ob_end_flush();

Rezultat

<p>Raportul nu poate fi generat acum.</p>

Greșeli frecvente

  • Apelezi ob_clean fără ob_start înainte. Nu există buffer, primești o notificare, iar textul afișat deja a plecat spre browser.

Comenzi înrudite

  • ob_end_clean: Aruncă tot conținutul bufferului de ieșire curent și îl închide.
  • ob_start / ob_get_clean / ob_end_flush: Pornește un buffer: tot ce afișezi după el este păstrat în memorie în loc să fie trimis imediat.
  • ob_flush: Trimite mai departe conținutul bufferului curent și îl golește, fără să îl închidă.