ob_implicit_flush în PHP

Pornește sau oprește trimiterea automată a ieșirii spre browser după fiecare afișare.

Sintaxă
ob_implicit_flush(bool $enable = true): void

Ce face ob_implicit_flush

Cu ob_implicit_flush(true), PHP face singur un flush() după fiecare echo, deci nu mai trebuie să îl apelezi tu. În linia de comandă această setare este pornită implicit.

Nu are efect asupra bufferelor deschise cu ob_start: textul rămâne în ele până le golești. Din PHP 8.0 parametrul este bool, nu număr întreg.

Parametri

Parametru Descriere
$enable Opțional. true pornește trimiterea automată, false o oprește.

Ce returnează

Nimic.

Exemple

Exemplul 1: Mesaje trimise imediat, într-un script lung

<?php
ob_implicit_flush(true);

foreach ([1, 2, 3] as $lot) {
    echo "Lotul $lot a fost procesat\n";
}

Rezultat

Lotul 1 a fost procesat
Lotul 2 a fost procesat
Lotul 3 a fost procesat

Greșeli frecvente

  • Pornești ob_implicit_flush și textul tot nu apare imediat. Probabil există un buffer deschis cu ob_start sau de setarea output_buffering. Închide-l înainte.

Comenzi înrudite

  • flush: Trimite imediat spre browser tot ce a fost afișat până acum.
  • ob_flush: Trimite mai departe conținutul bufferului curent și îl golește, fără să îl închidă.
  • ob_get_level: Returnează câte buffere de ieșire sunt deschise, unul în altul.