Bonjour,
ob_start(), ob_flush() ou flush() ?
Apparemment rien ne peut envoyer le flux à l'affichage du navigateur (IE6).
J'ai fait toute sorte de script de test pour en déduire que ces fonctions ne
peut piloter le navigateur.
Quelqu'un est-il arrivé à la même conclusion ?
merci de me faire part de vos expériences.
IB
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
dwojylac.nospam
AAA wrote:
Bonjour, ob_start(), ob_flush() ou flush() ? Apparemment rien ne peut envoyer le flux à l'affichage du navigateur (IE6). J'ai fait toute sorte de script de test pour en déduire que ces fonctions ne peut piloter le navigateur. Quelqu'un est-il arrivé à la même conclusion ? merci de me faire part de vos expériences.
ben si cela fonctionne parfaitement. je ne vois pas pourquoi le navigateur interviendrait. C'est côté serveur que ça se passe. Mise en buffer des données et redirection vers un fichier puis libération vers le navigateur par exemple
exemple : // en aval fabrication des données
// debut bufferisation ob_start(); // mon_template.php contient des echo $my_data,.. // un template avec du html et du php et tout ce qu'on veut include('montemplate.php');
// on recupère dans $data le contenu du buffer $data = ob_get_contents(); // on ecrit dans un fichier $file les données contenues dans $data $fp = fopen ($file,'w'); fwrite($fp,$data); fclose($fp); // on libère les données vers le navigateur ob_end_flush();
Cela permet de mettre en statique un fichier et eviter de le regénerer à chaque fois si les données ne changent pas.
ou une autre utilisation
// mise en buffer // des calculs // libération // d'autres calculs // liberation
voir
http://www.nexen.net/docs/php/annotee/function.ob-start.php?lien=obstart et la suite -- Dominique http://wojylac.free.fr
AAA <ykleleANTISPAM@yahoo.fr> wrote:
Bonjour,
ob_start(), ob_flush() ou flush() ?
Apparemment rien ne peut envoyer le flux à l'affichage du navigateur (IE6).
J'ai fait toute sorte de script de test pour en déduire que ces fonctions ne
peut piloter le navigateur.
Quelqu'un est-il arrivé à la même conclusion ?
merci de me faire part de vos expériences.
ben si cela fonctionne parfaitement.
je ne vois pas pourquoi le navigateur interviendrait. C'est côté serveur
que ça se passe. Mise en buffer des données et redirection vers un
fichier puis libération vers le navigateur par exemple
exemple :
// en aval fabrication des données
// debut bufferisation
ob_start();
// mon_template.php contient des echo $my_data,..
// un template avec du html et du php et tout ce qu'on veut
include('montemplate.php');
// on recupère dans $data le contenu du buffer
$data = ob_get_contents();
// on ecrit dans un fichier $file les données contenues dans $data
$fp = fopen ($file,'w');
fwrite($fp,$data);
fclose($fp);
// on libère les données vers le navigateur
ob_end_flush();
Cela permet de mettre en statique un fichier et eviter de le regénerer à
chaque fois si les données ne changent pas.
ou une autre utilisation
// mise en buffer
// des calculs
// libération
// d'autres calculs
// liberation
voir
http://www.nexen.net/docs/php/annotee/function.ob-start.php?lien=obstart
et la suite
--
Dominique
http://wojylac.free.fr
Bonjour, ob_start(), ob_flush() ou flush() ? Apparemment rien ne peut envoyer le flux à l'affichage du navigateur (IE6). J'ai fait toute sorte de script de test pour en déduire que ces fonctions ne peut piloter le navigateur. Quelqu'un est-il arrivé à la même conclusion ? merci de me faire part de vos expériences.
ben si cela fonctionne parfaitement. je ne vois pas pourquoi le navigateur interviendrait. C'est côté serveur que ça se passe. Mise en buffer des données et redirection vers un fichier puis libération vers le navigateur par exemple
exemple : // en aval fabrication des données
// debut bufferisation ob_start(); // mon_template.php contient des echo $my_data,.. // un template avec du html et du php et tout ce qu'on veut include('montemplate.php');
// on recupère dans $data le contenu du buffer $data = ob_get_contents(); // on ecrit dans un fichier $file les données contenues dans $data $fp = fopen ($file,'w'); fwrite($fp,$data); fclose($fp); // on libère les données vers le navigateur ob_end_flush();
Cela permet de mettre en statique un fichier et eviter de le regénerer à chaque fois si les données ne changent pas.
ou une autre utilisation
// mise en buffer // des calculs // libération // d'autres calculs // liberation
voir
http://www.nexen.net/docs/php/annotee/function.ob-start.php?lien=obstart et la suite -- Dominique http://wojylac.free.fr
Sebastien
AAA wrote:
Bonjour, ob_start(), ob_flush() ou flush() ? Apparemment rien ne peut envoyer le flux à l'affichage du navigateur (IE6). J'ai fait toute sorte de script de test pour en déduire que ces fonctions ne peut piloter le navigateur. Quelqu'un est-il arrivé à la même conclusion ? merci de me faire part de vos expériences.
Après un flush( ), ou équivalent, le flux de données part bien du serveur (en théorie, voir mod_gzip, etc.), ensuite le navigateur en fait ce qu'il veut. Pour le principe, quand tu envoies un <table> le navigateur peut très bien attendre le </table> avant d'afficher quoi que ce soit du tableau, histoire de savoir comment le rendre. Bref, un flush( ) ne veut pas dire "affiche-moi ces données", il faut aussi prendre en compte l'agent utilisateur.
AAA wrote:
Bonjour,
ob_start(), ob_flush() ou flush() ?
Apparemment rien ne peut envoyer le flux à l'affichage du navigateur (IE6).
J'ai fait toute sorte de script de test pour en déduire que ces fonctions ne
peut piloter le navigateur.
Quelqu'un est-il arrivé à la même conclusion ?
merci de me faire part de vos expériences.
Après un flush( ), ou équivalent, le flux de données part bien du
serveur (en théorie, voir mod_gzip, etc.), ensuite le navigateur en fait
ce qu'il veut.
Pour le principe, quand tu envoies un <table> le navigateur peut très
bien attendre le </table> avant d'afficher quoi que ce soit du tableau,
histoire de savoir comment le rendre.
Bref, un flush( ) ne veut pas dire "affiche-moi ces données", il faut
aussi prendre en compte l'agent utilisateur.
Bonjour, ob_start(), ob_flush() ou flush() ? Apparemment rien ne peut envoyer le flux à l'affichage du navigateur (IE6). J'ai fait toute sorte de script de test pour en déduire que ces fonctions ne peut piloter le navigateur. Quelqu'un est-il arrivé à la même conclusion ? merci de me faire part de vos expériences.
Après un flush( ), ou équivalent, le flux de données part bien du serveur (en théorie, voir mod_gzip, etc.), ensuite le navigateur en fait ce qu'il veut. Pour le principe, quand tu envoies un <table> le navigateur peut très bien attendre le </table> avant d'afficher quoi que ce soit du tableau, histoire de savoir comment le rendre. Bref, un flush( ) ne veut pas dire "affiche-moi ces données", il faut aussi prendre en compte l'agent utilisateur.
loufoque
AAA a dit le 01/12/2004 15:05:
ob_start(), ob_flush() ou flush() ? Apparemment rien ne peut envoyer le flux à l'affichage du navigateur (IE6).
<?php
ob_end_flush();
echo "Patientez quelques secondes...n"; flush(); sleep(3);
echo "C'est bon !n";
?>
Cela fonctionne parfaitement. En fait, PHP active tout seul l'output buffering sans rien demander, donc pour faire du flush il faut le désactiver.
AAA a dit le 01/12/2004 15:05:
ob_start(), ob_flush() ou flush() ?
Apparemment rien ne peut envoyer le flux à l'affichage du navigateur (IE6).
<?php
ob_end_flush();
echo "Patientez quelques secondes...n";
flush();
sleep(3);
echo "C'est bon !n";
?>
Cela fonctionne parfaitement.
En fait, PHP active tout seul l'output buffering sans rien demander,
donc pour faire du flush il faut le désactiver.