von Marcus |
Java ist doch wohl keine Alternative, siehst doch an der Kunstseite die ohne Java net geht |
von michaelh |
Alternativen? Java!
Beim IE6 gehts glaub ich nicht. |
von Marcus |
stimmt ja auch, da fehlt das flush(); vor $i++;. Aber wenn das browserabhängig ist ist das schlecht. Wie variiert das denn? Gibts Alternativen? |
von michaelh |
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 |
von Marcus |
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++;
}
?> |
|
von michaelh |
Les grad, dass das vom Browser abhängig ist. |
von Marcus |
Nö, hab snoch mit while und do while ausprobiert, geht net |
von michaelh |
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. |
von Marcus |
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. |
von michaelh |
Was kommt als Fehler? Was wird angezeigt? |
von Marcus |
Ne, ich habs mal soweit gehabt das er nach und nach alles angezeigt hat, so wies sein soll.
http://de3.php.net/flush |
von michaelh |
Der wird aber immer nur 100% anzeigen. |
von Marcus |
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 |
von michaelh |
Du willst doch 1.png 2.png 3.png ausgeben? Oder soll das was anderes werden?
|
von Marcus |
Warum $i.png? i.png ist doch die Bilddatei. Ok, blöder Name vielleicht. Aber daran hängts nicht. |
von michaelh |
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). |
von Marcus |
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();)
|