ob_get_contents în PHP

Returnează ce s-a adunat până acum în bufferul de ieșire, fără să îl golească.

Sintaxă
ob_get_contents(): string|false

Ce face ob_get_contents

ob_get_contents îți dă o copie a conținutului din bufferul curent. Bufferul rămâne deschis și plin, deci poți continua să afișezi în el.

De obicei este urmat de ob_end_clean (arunci conținutul) sau de ob_end_flush (îl trimiți). Combinația cu ob_end_clean face exact ce face ob_get_clean dintr-un singur apel.

Ce returnează

Conținutul bufferului sau false dacă nu există niciun buffer deschis.

Exemple

Exemplul 1: Copia conținutului, bufferul rămâne plin

<?php
ob_start();
echo "Prima parte. ";
$copie = ob_get_contents();
echo "A doua parte.";
$tot = ob_get_contents();
ob_end_clean();

var_dump($copie);
var_dump($tot);

Rezultat

string(13) "Prima parte. "
string(26) "Prima parte. A doua parte."

Exemplul 2: Fără buffer deschis

<?php
var_dump(ob_get_contents());

Rezultat

bool(false)

Greșeli frecvente

  • Apelezi ob_get_contents și uiți să închizi bufferul. Conținutul este trimis oricum la final, așa că apare de două ori dacă îl afișezi și tu. Închide-l cu ob_end_clean sau folosește direct ob_get_clean.

Comenzi înrudite