Bonjour, j'utilise la méthode flush() ne vide pas le buffer et donc, il n'y a rien qui s'affiche à l'ecran progressivement comment je le voudrai...
Quelqu'un sait-il pourquoi ?
Merci d'avance.
Bonjour, j'utilise la méthode flush() ne vide pas le buffer et donc, il n'y a rien qui s'affiche à l'ecran progressivement comment je le voudrai...
Quelqu'un sait-il pourquoi ?
Merci d'avance.
tu visualises a travers un navigateur ou en ligne de commande ?
Alors cela depends du navigateur.
Certains navigateurs attende d'avoir recu entierement le message avant d'afficher quoi que ce soit.
cela devrait afficher 1 point toutes les secondes pendant 15 secondes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for($i = 0; $i<15; $i++) { echo '.'; flush(); sleep(1); }
Si ca ne marche pas, c'est que en effet ton navigateur attend d'avoir recu assez de données. Je sais par exemple que certains navigateurs attendent d'avoir recu 1024 ou 4096 octets de données pour afficher quelque chose... donc tu peux essayer d'ajouter :
dans la boucle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo str_pad('',4096).'\n';
A noter egalement que ca depend pour certains navigateurs de l'endroit ou tu est... si tu est dans un tableau ca risque de ne pas fonctionner car certains n'affichent le contenu que lorsqu'ils rencontrent la balise </table>
Le problème c'est que j'ai déjà le script php sur un autre serveur et ça marche... Donc je pense que cela vient de la configuration du serveur mais je ne sais pas exactement où...
Ok, en effet certains serveurs ont des mises en cache (buffer) a l'affichage egalement.
tu peux encore essayer cela (sans garantie) a la place du flush() :Envoyé par http://fr2.php.net/fr/flush
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 while (ob_get_level()) { ob_end_flush(); }
Ok, j'essai ce soir et je tiens au courant...
Merci
si ca marche pas, j'ai pas de solution... peut etre du au moteur php ou apache...
Partager