kostenloser Webspace werbefrei: lima-city


ob_flush geht nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    buzzer

    buzzer hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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.
  4. Autor dieses Themas

    buzzer

    buzzer hat kostenlosen Webspace.

    vielen dank, doch das hab ich schon versucht, sogar 4096 :(
    In meinem eig., auch viel komplexeren Skript steht das auch standardmäßig dabei.

    Ich habe irgendwo gelesen, dass man, die php.ini durch ein .htaccess für den Ordner in dem sie ist, ändern kann.
    Kann mir dabei jmd. helfen
  5. @buzzer
    Ich habe irgendwo gelesen, dass man, die php.ini durch ein .htaccess für den Ordner in dem sie ist, ändern kann.
    Kann mir dabei jmd. helfen
    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)
    <?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)
    }
    
    ?>
    ... 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.

    tut leid, auch in früheren zeiten hat es nie funktioniert.

    lg
    joseph
  6. Autor dieses Themas

    buzzer

    buzzer hat kostenlosen Webspace.

    ok es geht :)

    da der Apache die Seite packt und dadurch zu wenige Daten für den Flush sendet:

    header("Content-Encoding: none");
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!