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 cuob_end_cleansau folosește directob_get_clean.
Comenzi înrudite
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_end_clean: Aruncă tot conținutul bufferului de ieșire curent și îl închide.ob_get_length: Returnează câți octeți sunt în bufferul de ieșire curent.