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

  • Gumfuzi
    hat ein Thema erstellt Ausgabe per echo sofort erzwingen.

    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)

  • Gumfuzi
    antwortet
    Danke für die rasche Hilfe!

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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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

    Einen Kommentar schreiben:


  • Gumfuzi
    antwortet
    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)

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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";

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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:

    Einen Kommentar schreiben:


  • Gumfuzi
    antwortet
    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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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!?

    Einen Kommentar schreiben:

Lädt...
X