status einer schleife ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • status einer schleife ausgeben

    ich habe folgendes problem:
    ich hab eine größere while schleife, die daten aus einer text-datei in eine db schreibt. nun möchte ich mir eine art kleinen status ausgeben, wie weit die schleife ist.
    also praktisch so:
    PHP-Code:
    <?php 
      
    echo $eintragnummer." hinzugefügt!<br>";
    ?>
    nur leider wird alles erst angezeigt wenn das script fertig ist und nicht während des durchlaufs!
    Wie umgeht man das?
    Mess with the Besth, die like the rest!

  • #2
    http://de.php.net/manual/de/function.flush.php

    Beachte auch die "User contributed Notes" auf dieser Seite

    Gruß
    Uwe

    Kommentar


    • #3
      PHP-Code:
      for ($i 0$i <= 200$i++) {
          if ((
      $i%25) == 0)
              echo 
      $i

      Das Teil gibt nun alle 25 Durchläufe etwas aus. Ist nur ein Beispiel wie sowas gehen könnte. Letztlich hängt es davon ab was du da überhaupt genau machst, mußt also die Schleife und das was du tust zusammenbasteln.


      Gruß, string

      Kommentar


      • #4
        @ uwe59
        also flush geht nicht!

        @ string
        nein du hast mich nicht ganz verstanden ...
        wie ich was ausgebe ist ja kein problem, ob nun bei jedem durchlauf oder nur bei jedem 25.
        Das Problem liegt darin das es nicht angezeigt wird, erst am ende wenn das script fertig ist ...
        es soll aber während das vorgangs anzeigen was los ist ...
        Mess with the Besth, die like the rest!

        Kommentar


        • #5
          Original geschrieben von uwe59
          Beachte auch die "User contributed Notes" auf dieser Seite
          alle beachtet?

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Du hast die Seite inkl. "User contributed Notes" gelesen und Beispiele von dieser Seite innerhalb von 8 Minuten durch. Du musst ein Genie sein.

            Gruß
            Uwe

            Kommentar


            • #7
              Beispiel meiner schleife:
              PHP-Code:
              <?php
                $fp 
              fopen("bla.txt","r");
                
              $i 0;
                if (
              $fp) {
                  while(!
              feof($fp)) {
                    
              $i++;
                    
              // mysql befehl
                    
              echo $eintragnummer." hinzugefügt!<br>";
                    
              ob_flush();
                    
              flush();
                  }
                  
              fclose($fp);
                }
              ?>
              und das geht nicht
              Mess with the Besth, die like the rest!

              Kommentar


              • #8
                @string
                Und wann genau glaubst du, dass man deine Ausgabe sieht ?
                []während dem Durchlaufen der Schleife
                []erst nachdem die Schleife komplett durchlaufen ist und der Parser den Input an den Client schickt

                @topicstarter
                PHP-Code:
                for($i=1;$i<=100000;$i+=1){
                    echo 
                $i.'<br />';
                    
                ob_flush();
                    
                flush();

                obiges funzt bei dir ned ?

                Gruss

                tobi

                p.s. bei den Userbeiträgen noch gelesen dass ein sleep(1) helfen könnte
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  nein das klappt nicht, auch kein ob_start() und ende und auch kein sleep
                  Mess with the Besth, die like the rest!

                  Kommentar


                  • #10
                    hab jetzt nochma was anderes probiert:
                    PHP-Code:
                    <?php 
                    echo "hi<br>";
                    for(
                    $i=1;$i<=5;$i+=1){
                        echo 
                    $i.'<br>';
                        
                    ob_flush();
                        
                    flush();
                        
                    sleep(1);
                    }
                    ?>
                    dabei ist egal wie rum flush und ob_flush stehn!
                    selbst das hi wird erst hinterher angezeigt -.-
                    Mess with the Besth, die like the rest!

                    Kommentar


                    • #11
                      hast du apache unter Windows am laufen? afaik funktioniert das da nicht immer einwandfrei (auch wenn ich das Problem bei mir bisher nicht feststellen konnte) ... probier mal auf Linux

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #12
                        @ jahlives
                        *roftl* Ich sitz gerade über einem Haufen C dessen stdout stehenden Fußes durchs Terminal flutscht. Da war wohl gerade keine Assotiation zum parsenden Contentschieber auf einem Webserver drinne.
                        Zuletzt geändert von string; 14.08.2006, 17:28.

                        Kommentar

                        Lädt...
                        X