se non hai ne ob_start ne altri handler per l'output (mi ero dimenticato di mettere in elenco gzip) e fai il flush (o hai l'implicit flush attivato) allora l'output lo devi vedere subito

il motivo per il quale non vedi nulla non è che php non lo invia ma è perché i browser, per motivi "prestazionali", se non hanno scaricato un po di materiale non iniziano a fare il parsing della pagina

http://www.daccii.it/private/test-flush.php

codice:
<?php

// stampa un po di roba inutile
echo str_repeat(' ', 4096);

for($i = 0; $i < 10; $i++)
{
    echo $i . '&deg; stringa stampata a video
';
    flush();
    sleep(1);
}

?>
In una situazione reale, in realtà, il problema non c'è perché prima di fare operazioni di qualsiasi tipo tramite questo meccanismo hai già inviato il resto della pagina