Henryk Plötz: flush(), sleep() funktioniert nicht wie es sollte

Beitrag lesen

Moin,

Dann gibts eben "den PHP-Puffer" (auf den Flush wirkt) und "irgendeinen anderen Puffer", der die ganze Ausgabe nochmal aufhält. Das können z.B. Web- oder Proxyserver sein. Oder auch der Browser selbst. Tabellen werden ja bekanntlich nur am Stück angezeigt - um nur ein Beispiel zu nennen. Netscape 4 ist AFAIK (hatte mal selbst mit Perl einen Fortschrittsbalken geschrieben) etwas störrisch - IE hab ich nicht getestet damals.

Genau der Browser wird schuld sein. Mit Mozilla müsste der Code beispielweise funktionieren, mit Netscape 4 nicht. Letzterer puffert wirklich ganz gerne mal, was ich ebenfalls bei der Programmierung eines Fortschrittsbalkens bemerkt habe. Ich bin mir nicht ganz sicher, aber ich glaube es reicht an jede Zeile einen Zeilenumbruch (also ein \n innerhalb des Strings) anzuhängen. Ansonsten benutz einfach einen anderen Browser oder führ das Skript mal auf der Kommandozeile mit der PHP-CGI-Version aus.
Es funktioniert auf jeden Fall, davon kannst du dich notfall mit einem Packet Sniffer überzeugen.

--
Henryk Plötz
Grüße von der Ostsee