ob_flush geht nicht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
befragen
buffer
code
datum
genutzte apache
glauben
header
helfen
http
macher
methode
not
ordner
output
quellcode
raten
senden
start
url
zeile
-
Hi, ich habe ein Skript, dass ob_start und ob_flush beinhaltet. Auf anderem Webspace lief es problemlos, hier scheint der Buffer zu groß zu sein.
Also es geht um eine Tabelle, in der jede Zeile einzeln nacheinander angezeigt werden soll. Allerdings bleibt die Seite erst leer und wird dann komplett angezeigt :(
Wäre schön, wenn jmd eine Idee hat, ob man das hier ändern kann.
Quellcode:
<?php ob_start(); // Start output buffer (if not enabled in php.ini) for($i=0; $i < 10; $i++) { echo $i, ' '; ob_flush(); flush(); sleep(1); } ?>
http://buzzer.lima-city.de/test.php
Beitrag zuletzt geändert: 28.10.2010 5:52:21 von buzzer -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Einige Webserver (darunter glaube ich auch der hier genutzte Apache) senden den Ausgabebuffer immer erst, wenn er eine bestimmte Größe erreich. Du kannst versuchen vor dem `ob_flush` noch ein `echo str_pad('', ' ', 200);` zu machen und sehen ob das hilft. Das erzeugt einfach noch zusätzlichen Whitespace.
-
@buzzer
Ich habe irgendwo gelesen, dass man, die php.ini durch ein .htaccess für den Ordner in dem sie ist, ändern kann.
also das kenne ich nicht, aber da gibt es andere methoden auch. ich habe dein script z.b. auf 'brutalität' getrimmt (in punkto flushing)
Kann mir dabei jmd. helfen
... und siehe da: es geht nicht! (auf lima!!) ich würde daher raten, die lima-macher mal zu befragen. sie müssen es wissen, warum es nicht geht. es sieht für mich einfach faul aus.<?php error_reporting (E_ALL); flush_buffers (); // flush buffer funktion for ($i=0; $i < 10; $i++) { echo $i, ' '; ob_flush (); flush (); sleep (1); } echo "<hr />"; highlight_file (__FILE__); function flush_buffers () { while (@ob_end_clean ()); ob_end_flush (); ob_flush (); flush (); ob_start (); // Start output buffer (if not enabled in php.ini) } ?>
tut leid, auch in früheren zeiten hat es nie funktioniert.
lg
joseph -
ok es geht :)
da der Apache die Seite packt und dadurch zu wenige Daten für den Flush sendet:
header("Content-Encoding: none"); -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage