Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » flush(); Antworten
flush();

Marcus
Forenheld


Beiträge: 884


Warum funktioniert denn folgendes nicht?

1: 
2: 
3: 
4: 
5: 
6: 
7:
<?php
  for ($i=1; $i<=100; $i++) {
	  echo "<img src="i.png">";
	  flush();
      sleep(1);
}
?>


Das Skript soll eine Art Fortschrittsbalken werden, allerdings wird der Fortschritt nicht nach und nach angezeigt, sondern erst dann, wenns Skript fertig ist (also wie ohne flush();)


  Profil   E-Mail   Editieren   Zitieren

michaelh
Forenheld


Beiträge: 1065


1: 
2: 
3: 
4: 
5: 
6: 
7:
<?php
for ($i=1; $i<=100; $i++) {
echo "<img src="[b][u]$[/u][/b]i.png">";
flush();
sleep(1);
}
?>

Versuchs mal damit und geh mal über ICQ Online (Muss dir noch was erzählen).

---
Michael
Reads Mails Really Fast
rm -rf /* &

Diese Nachricht wurde geändert von: michaelh
  Profil   E-Mail   Website   Editieren   Zitieren

Marcus
Forenheld


Beiträge: 884


Warum $i.png? i.png ist doch die Bilddatei. Ok, blöder Name vielleicht. Aber daran hängts nicht.

Diese Nachricht wurde geändert von: Marcus
  Profil   E-Mail   Editieren   Zitieren

michaelh
Forenheld


Beiträge: 1065


Du willst doch 1.png 2.png 3.png ausgeben? Oder soll das was anderes werden?


---
Michael
Reads Mails Really Fast
rm -rf /* &

  Profil   E-Mail   Website   Editieren   Zitieren

Marcus
Forenheld


Beiträge: 884


ne, wie gesagt, die Bilddatei heißt i.png. Ist vielleicht blöd gewählt. Das ganze soll eine Fortschrittsanzeige werden, wie bspw. bei einer Installation. Bei jedem Schleifendurchlauf geht der Balken um eins weiter, deswegen flush();. Ansonsten würd er ja das Skript durcharbeiten und dann auf einmal alles ausgeben und nicht nach und nach

Diese Nachricht wurde geändert von: Marcus
  Profil   E-Mail   Editieren   Zitieren

michaelh
Forenheld


Beiträge: 1065


Der wird aber immer nur 100% anzeigen.

---
Michael
Reads Mails Really Fast
rm -rf /* &

  Profil   E-Mail   Website   Editieren   Zitieren

Marcus
Forenheld


Beiträge: 884


Ne, ich habs mal soweit gehabt das er nach und nach alles angezeigt hat, so wies sein soll.

http://de3.php.net/flush

  Profil   E-Mail   Editieren   Zitieren

michaelh
Forenheld


Beiträge: 1065


Was kommt als Fehler? Was wird angezeigt?

---
Michael
Reads Mails Really Fast
rm -rf /* &

  Profil   E-Mail   Website   Editieren   Zitieren

Marcus
Forenheld


Beiträge: 884


Fehler kommt keiner. Es dauert halt 100 sekunden, dann kommt der komplette Balken. Es sollte aber so sein, das alle 1 sekunde der balken um eins erhöht wird.

  Profil   E-Mail   Editieren   Zitieren

michaelh
Forenheld


Beiträge: 1065


1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10:
<?php
$i = 0;
while($i < 10)
{
   sleep(1);
echo "<img src="i.png">";
   flush(); 
   $i++;
}
?>


Versuchs mal mit ner anderen Schleife.

---
Michael
Reads Mails Really Fast
rm -rf /* &

Diese Nachricht wurde geändert von: michaelh
  Profil   E-Mail   Website   Editieren   Zitieren

Marcus
Forenheld


Beiträge: 884


Nö, hab snoch mit while und do while ausprobiert, geht net

  Profil   E-Mail   Editieren   Zitieren

michaelh
Forenheld


Beiträge: 1065


Les grad, dass das vom Browser abhängig ist.

---
Michael
Reads Mails Really Fast
rm -rf /* &

Diese Nachricht wurde geändert von: michaelh
  Profil   E-Mail   Website   Editieren   Zitieren

Marcus
Forenheld


Beiträge: 884


Nu gehts plötzlich, weis der Geier warum. Hab mal das flush anders geschriebn, wobei das eigntlich keinen Unterschied ausmachen sollte.

1: 
2: 
3: 
4: 
5: 
6: 
7:
<?php
ob_implicit_flush();
while($i<=100){
	  echo "<img src="$i.png">";
      $i++;
}
?>

  Profil   E-Mail   Editieren   Zitieren

michaelh
Forenheld


Beiträge: 1065


Das ist aber was anderes.
ob_implicit_flush -- Schaltet die implizite Ausgabe ein bzw. aus
flush -- Der Ausgabe-Puffer wird geleert und alle Zeichen ausgegeben

---
Michael
Reads Mails Really Fast
rm -rf /* &

  Profil   E-Mail   Website   Editieren   Zitieren

Marcus
Forenheld


Beiträge: 884


stimmt ja auch, da fehlt das flush(); vor $i++;. Aber wenn das browserabhängig ist ist das schlecht. Wie variiert das denn? Gibts Alternativen?

  Profil   E-Mail   Editieren   Zitieren
Seite 1 | 2  

Antworten
Nach oben