Ce face flush
flush cere PHP-ului să trimită serverului web tot ce a afișat până în acest moment, fără să mai aștepte finalul scriptului. Așa poți arăta progresul unei operații lungi.
Nu golește bufferele deschise cu ob_start: pentru ele apelezi întâi ob_flush(). Serverul web, un proxy sau compresia gzip pot ține datele până la final, deci rezultatul diferă de la un server la altul.
Ce returnează
Nimic.
Exemple
Exemplul 1: Progresul unui import
<?php
foreach (["clienti.csv", "produse.csv", "comenzi.csv"] as $fisier) {
echo "Import $fisier... gata\n";
flush();
}
Rezultat
Import clienti.csv... gata
Import produse.csv... gata
Import comenzi.csv... gata
Greșeli frecvente
- Folosești
flushcu un bufferob_startdeschis și nu se întâmplă nimic. Apeleazăob_flush()înainte deflush().
Comenzi înrudite
ob_flush: Trimite mai departe conținutul bufferului curent și îl golește, fără să îl închidă.ob_implicit_flush: Pornește sau oprește trimiterea automată a ieșirii spre browser după fiecare afișare.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.