Ce face ob_flush
ob_flush trimite ce s-a adunat în buffer către nivelul următor (alt buffer sau serverul web) și golește bufferul. Bufferul rămâne deschis pentru afișarea care urmează.
Pentru ca textul să ajungă cu adevărat în browser în timpul rulării, de obicei se apelează ob_flush() urmat de flush(). Serverul web sau compresia gzip pot să mai țină totuși datele până la final.
Ce returnează
true la succes, false dacă nu există buffer.
Exemple
Exemplul 1: Progres afișat pe etape
<?php
ob_start();
foreach (["Citesc fișierul", "Import produse", "Gata"] as $pas) {
echo $pas . "\n";
ob_flush();
flush();
}
ob_end_flush();
Rezultat
Citesc fișierul
Import produse
Gata
Greșeli frecvente
- Apelezi doar
ob_flushși te aștepți ca textul să apară imediat în browser. Mai ai nevoie deflush(), iar serverul poate avea propriul buffer.
Comenzi înrudite
flush: Trimite imediat spre browser tot ce a fost afișat până acum.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_implicit_flush: Pornește sau oprește trimiterea automată a ieșirii spre browser după fiecare afișare.