ob_end_clean în PHP

Aruncă tot conținutul bufferului de ieșire curent și îl închide.

Sintaxă
ob_end_clean(): bool

Ce face ob_end_clean

ob_end_clean golește bufferul curent și îl închide. Nimic din ce era în el nu ajunge la browser. Ce afișezi după apel merge în bufferul de dedesubt sau, dacă nu mai există altul, direct spre browser.

Se folosește când vrei să ascunzi afișarea unei funcții pe care nu o poți modifica, de exemplu o bibliotecă veche care face echo.

Ce returnează

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

Exemple

Exemplul 1: Ascunderea afișării unei funcții

<?php
function calculeaza_vechi(int $x): int
{
    echo "DEBUG: calculez pentru $x\n";
    return $x * 2;
}

ob_start();
$rezultat = calculeaza_vechi(21);
ob_end_clean();

echo "Rezultat: $rezultat";

Rezultat

Rezultat: 42

Greșeli frecvente

  • Folosești ob_end_clean când voiai conținutul. Este pierdut. Dacă ai nevoie de el, folosește ob_get_clean.

Comenzi înrudite

  • ob_clean: Golește bufferul de ieșire curent, fără să trimită conținutul și fără să îl închidă.
  • 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.