Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausgabe per echo sofort erzwingen

Einklappen

Neue Werbung 2019

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

  • Ausgabe per echo sofort erzwingen

    Hallo!

    Wie kann ich dem Skript sagen, daß es die Ausgabe per "echo" sofort macht und nicht erst nach fertigem Durchlauf des Skriptes:
    PHP-Code:
    <?php
    // ...
                
    elseif ($pos == 0)
                {
                    
    $a++;
                    
    $filelist = array($folder[$c]);
                    echo 
    "verarbeite " $folder[$c];
                    
    $flags['recursed']=0;
                    
    $backup = new tarfile($_SERVER['DOCUMENT_ROOT'],$flags);
                    
    $backup->adddirectories($filelist);
                    
    $backup_zip = new gzfile($_SERVER['DOCUMENT_ROOT'].'_backup/zentrale/backup.tar',$flags);
                    
    $backup_zip->addfile($backup->getdata(),'backup.tar');
                    
    $backup_zip->filewrite('backup_'.date('d_m_Y_H_i_s',time()).'__'.$a.'.tar.gz',0755);
                    echo 
    " - fertig!
    "
    ;
                }
    // ...
    ?>
    Warum wird erst am Ende der gesamte Text ausgegeben?
    Ich wollte gerne dass man immer aktuell sieht, welcher Ordner gerade an der Reihe ist - momentan passiert lange gar nix, dann sieht man den ganzen Output auf einmal.
    Liegt es am phpBB (Header, etc.)? oder kann man das auch irgendwie erzwingen (nur für diese Seite, nicht für das ganze phpBB)

  • #2
    flush()
    ob_implicit_flush()

    /edit:
    Sehe gerade, dass implicit_flush bei Dir ja schon aktiviert ist:
    Zitat von www.gumfuzi.com/diverses/info.php
    implicit_flush On On
    -----
    Meine mich zu erinnern, dass manche Browser erst ab einer bestimmten Byte-Zahl die Ausgabe auswerten!?

    Kommentar


    • #3
      Danke!!!

      Habe nun ein
      PHP-Code:
      <?php
      ob_end_flush
      ();
      ?>
      vor der Schleife und ein
      PHP-Code:
      <?php
      @ob_flush();
      ?>
      in der Schleife nach dem zweiten echo-Befehl eingebaut.

      Nun wird zumindest Blockweise der Text ausgegeben - immer wenn das Skript für einen Ordner etwas länger braucht, wird dann sozusagen aktualisiert - was mir notfalls auch genügt.

      Falls jemand noch eine Idee hat, wie es für jede zeile einzeln geht, dann bitte posten.

      *edit*
      hier Infos bez. der Mindestlänge:
      http://at.php.net/manual/de/function.flush.php#56951

      Kommentar


      • #4
        Dem ob_end_flush() und Deinen ini-Einstellungen entnehme ich mal, dass Du einen Output-Buffer gesetzt hast!

        Wieso, wenn Du doch alles sofort ausgeben möchtest?

        Zitat von Gumfuzi
        Falls jemand noch eine Idee hat, wie es für jede zeile einzeln geht, dann bitte posten.
        Siehe mein voriger Post... :wink:

        Kommentar


        • #5
          Möglicherweise stellt zusätzlich auch der Browser die Daten nicht sofort dar.
          Blockelemente wie

          helfen da meist weiter.
          PHP-Code:
          elseif ($pos == 0)
          {
              
          $a++;
              
          $filelist = array($folder[$c]);
              echo 
          '

          verarbeite: ' 
          htmlentities($folder[$c]), "</p>\n";
              
          $flags['recursed']=0;
              
          $backup = new tarfile($_SERVER['DOCUMENT_ROOT'],$flags);
              
          $backup->adddirectories($filelist);
              
          $backup_zip = new gzfile($_SERVER['DOCUMENT_ROOT'].'_backup/zentrale/backup.tar',$flags);
              
          $backup_zip->addfile($backup->getdata(),'backup.tar');
              
          $backup_zip->filewrite('backup_'.date('d_m_Y_H_i_s',time()).'__'.$a.'.tar.gz',0755);
              echo 
          '

          fertig: '
          htmlentities($folder[$c]), "</p>\n";

          Kommentar


          • #6
            das "ob_end_flush();" habe ich wieder entfernt - nun funzt es. Danke!!!!!!!

            Noch etwas:
            PHP-Code:
            <?php

                $backup_dir 
            $_SERVER['DOCUMENT_ROOT'].'_backup/zentrale/backup_'.date('Ymd_His',time());
                
            mkdir($backup_dir0777);
            ?>
            Warum erhalten meine Ordner immer den chmod "755" und nicht "777"?
            (kann die dann per FTP-Nutzer nicht löschen, weil vom Skript erstellt)

            Kommentar


            • #7
              http://de3.php.net/manual/en/function.mkdir.php
              The mode is also modified by the current umask, which you can change using umask()
              http://en.wikipedia.org/wiki/Umask

              Kommentar


              • #8
                Danke für die rasche Hilfe!

                Meine Hochachtung vor so einem kompetenten und hilfsbereitem Forum!!!! Ihr seid echt Klasse!!!

                Kommentar

                Lädt...
                X