Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1366 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] ob_start() et ob_end_flush()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] ob_start() et ob_end_flush()

n°1746809
hahahafr
Machete don't text
Posté le 15-06-2008 à 21:17:56  profilanswer
 

Bonjour,
Voici mon code :
 

Code :
  1. <?php
  2. for ($i = 0; $i <= 10 ; $i++) {
  3. $raw = file_get_contents($url);
  4. if ($var == 1) {
  5. echo 'ok';
  6. } else {
  7. echo 'not ok';
  8. }
  9. }
  10. echo 'invisible text ?';
  11. ?>


- D'aprés ce que j'ai compris en lisant la documentation de php ob_start() et ob_end_flush() sont complémentaires. ob_start() est destiné a stopper l'envoi des donnée vers le navigateur et commencé une "mise en cache". ob_end_flush() est la pour stopper cette "mise en cache" et envoyer les données déjà en cache vers le navigateur tout en arrêtant le script. J'ai bon ?
 
- Ce que j'essaie de faire avec mon petit script c'est afficher les lignes de ma boucle à la suite, une à une, et non-pas en une seule fois lorsque la page arrive sur le navigateur. Je ne parle pas la de l'AJAX, regarder ce site sans javascript : http://just-ping.com/index.php?vh=66.94.234.13
Il réalise un affichage des lignes une à une, et non pas en un seul gros bloc, comme c'est la cas pour mon script.
D'où mon essai avec les fonctions ob_start() et ob_end_flush().
 
Je ne comprends cependant pas pourquoi ma page s'affiche toujours en un seul coup. J'ai mal utilisé ces fonctions ? Ou alors elles sont incompatibles avec les boucles ? Quelqu'un aurai une petite idée ?
 
 :whistle:


Message édité par hahahafr le 16-06-2008 à 14:26:32
mood
Publicité
Posté le 15-06-2008 à 21:17:56  profilanswer
 

n°1746813
flo850
moi je
Posté le 15-06-2008 à 21:50:46  profilanswer
 

un simple flush() apres le echo devrai suffire  
 
oublie les ob_***


---------------

n°1746847
hahahafr
Machete don't text
Posté le 16-06-2008 à 00:30:39  profilanswer
 

Non, toujours pas.
C'est bizarre parce que sur ce site : http://iubito.developpez.com/php/bench.php qui affiche aussi ligne par ligne, ils utilisent flush() aprés un echo et ça marche trés bien (cf. lien "Voir la source de cette page" ).
 
 :sweat:


Message édité par hahahafr le 16-06-2008 à 00:30:57
n°1746927
skeye
Posté le 16-06-2008 à 10:32:34  profilanswer
 

Il peut y avoir une mise en cache au niveau du serveur http et/ou du navigateur...mais en général flush+ob_end_flush suffisent...:??:


---------------
Can't buy what I want because it's free -
n°1747065
hahahafr
Machete don't text
Posté le 16-06-2008 à 14:24:43  profilanswer
 

Pour ceux que ça intéressent, j'ai finalement réussi. Il semblerait que apache 2 + php 5 sous windows posent des soucis. Pour résoudre ça il suffit de faire un ob_flush(); suivi d'un flush(); et là, ça marche.
 
 :)


Message édité par hahahafr le 16-06-2008 à 14:24:57

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] ob_start() et ob_end_flush()

 

Sujets relatifs
[Résolu] Message d'erreur PHP envoyé dans le log d'Apache 2[RESOLU] extraire et afficher premier caractere de chaque chaine
[Resolu]Delphi/Directx : Plus d'image en grande résolution[RESOLU] savoir si une cellule appartient a une zone
[résolu]Classes pour faciliter l'utilisation de sockets C, en C++[MySql] requete group by + order by { RESOLU }
[Résolu] Récupere la valeur d'un Select[résolu] Compatibilité du codage des fichiers, serveurs windows et L..
[Résolu] Débutant : Installer BD Sql Server sur un DD réseau[Résolu] Affichage alterné 50% / 50%
Plus de sujets relatifs à : [Résolu] ob_start() et ob_end_flush()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR