Bestimmte datei aus ftp lesen

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

  • Bestimmte datei aus ftp lesen

    Bis jetzt habe ich immer eine Datei so ausgelesen:

    PHP-Code:
    $logfilename1 'Statistics.log';
    $logfilename3 "Statistics.bak";

    /*Speichert Quelldatei in eine lokale Datei*/
       
    $error false;
       
       
    $fp ftp_connect($servername121) or die ("FTP-Connect hat nicht funktioniert");

       
    $con ftp_login($fp$user1$passwort1) or die ("FTP-Login hat nicht funktioniert");

       
    ftp_chdir($fp"/FarCry/");

       if (! 
    ftp_get($fp$logfilename3$logfilename1FTP_ASCII ))
       {
          
    //echo ("Error ftp_get, File = $logfilename1");
          
    $error true;
       }

       
    ftp_close($fp); 
    So wie schaff ich es nun allerdings, das ich die jüngste also die datei, die als letztes erstellt wurde zu kopieren.
    Der namen dieser datei heißt so. 00000000.log
    und dann wird eben so hoch gezählt 00000001.log...

  • #2
    Re: Bestimmte datei aus ftp lesen

    Original geschrieben von Manofwar
    So wie schaff ich es nun allerdings, das ich die jüngste also die datei, die als letztes erstellt wurde zu kopieren.
    Der namen dieser datei heißt so. 00000000.log
    und dann wird eben so hoch gezählt 00000001.log...
    D.h., die "jüngste" kann auch irgendwann 00004711.log heissen?

    Dann musst du erst mal alle Dateien aus dem Ordner ermitteln, und nach Erstellungs- oder Modifikationsdatum (oder in diesem Falle evtl. auch Name, aber das dürfte generell ungünstiger sein) sortieren.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      z.B. mit ftp_mdtm() könntest du die jüngste Datei auf dem Server unabhängig vom Namen feststellen.
      Funzt aber nicht mit allen FTP Server !

      Gruss

      tobi
      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


      • #4
        soll ich dann zB mit ftp_nlist die Dateien heraus finden ode wie soll ich das machen. Was mir fehlt ist ein ansatz

        Kommentar


        • #5
          Lies das Verzeichnis mit ftp_nlist() aus. Für jeden Dateinamen (Element im Rückgabearray der Fkt) liest du mit ftp_mdtm() den Unixtimestamp aus und schreibst die Infos in ein Array (ich würde key = Dateiname elem = Zeit verwenden). Dann sortierst du das Array absteigend nach der Zeit und pickst dir das erste Element --> downloaden

          Gruss

          tobi
          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


          • #6
            Das Array ist dann auch verzichtbar, wenn man sich jedes Mal den letzten "höchsten" Dateinamen merkt.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              gut also die Daten und namen der files werden ausgegeben:

              PHP-Code:
                 $error false;
                 
                 
              $fp ftp_connect($servername121) or die ("FTP-Connect hat nicht funktioniert");

                 
              $con ftp_login($fp$user1$passwort1) or die ("FTP-Login hat nicht funktioniert");
                 
                 
              $contents ftp_nlist($fp"webseiten/ranking/test/");
                 
                 
              var_dump($contents);
                 
                 
              ftp_close($fp); 
              In der ausgabe sind jedoch auch 2 Sachen, die ich nicht verstehe:

              array(4) { [0]=> string(1) "." [1]=> string(2) ".." [2]=> string(12) "00000004.log" [3]=> string(14) "Statistics.log" }
              Nur die 2 log dateien befinden sich auf dem server wie kann es dann sein, das dort "." und ".." ist?

              Kommentar


              • #8
                informiere dich: http://www.google.de/search?q=dateis...zwei+punkte%22

                Kommentar


                • #9
                  OffTopic:
                  Geniale Antwort!
                  Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                  Kommentar


                  • #10
                    ich habe hier nochmal eine möglichkeit gefunden:

                    PHP-Code:
                        $handle=opendir ('./test/');
                        while (
                    false !== ($file readdir ($handle))) {

                        echo 
                    "$file\n" date ("dmY_His."filemtime($file));
                        echo 
                    "<br>";
                        }
                        
                    closedir($handle);
                       
                    ftp_close($fp); 
                    Allerdings erscheint dann immer bei den Dateien folgende fehlermeldung:

                    Warning: filemtime(): Stat failed for 00000004.log (errno=2 - No such file or directory) in /kunden/165434_78333/webseiten/ranking/Kopie von copy.php on line 27
                    00000004.log 01011970_010000.
                    Welche der arten ist sinnvoller und kompatipler auf verschiedenen webspaces

                    Kommentar


                    • #11
                      laaangsam. wolltest du auf dem ftp-server, oder doch lokal etwas nachgucken?
                      ich habe hier nochmal eine möglichkeit gefunden:
                      und was macht diese? in wiefern ist sie besser, als die andere?

                      Allerdings erscheint dann immer bei den Dateien folgende fehlermeldung: [...]No such file or directory[...]
                      wolltest du diese freude mit uns teilen?
                      Welche der arten ist sinnvoller und kompatipler auf verschiedenen webspaces
                      in erster linie: die korrekte.

                      wie kann man dir helfen?

                      Kommentar


                      • #12
                        laaangsam. wolltest du auf dem ftp-server, oder doch lokal etwas nachgucken?
                        Auf einem ftp

                        naja ich bin mir zu 100% sicher das die Dateien auf dem Server sind. Sehe es ja im ftp programm. und die rechte sind auf 0777.

                        in erster linie: die korrekte.
                        Und welche ist die korrektere?

                        Kommentar


                        • #13
                          ok also ich nehm glaube ich die erste möglichkeit habe da nun weiter gemacht

                          PHP-Code:
                          /*Speichert Quelldatei in eine lokale Datei*/
                             
                          $error false;
                             
                             
                          $fp ftp_connect($servername121) or die ("FTP-Connect hat nicht funktioniert");

                             
                          $con ftp_login($fp$user1$passwort1) or die ("FTP-Login hat nicht funktioniert");
                             
                             
                          $nlist ftp_nlist($fp"webseiten/ranking/test/");
                              
                              foreach (
                          $nlist as $name) {
                                  
                          $zeit ftp_mdtm ($fp"webseiten/ranking/test/$name");
                                  
                          $datei[$zeit] = $name;
                              }
                              echo 
                          '<pre>'.print_r($dateiTRUE).'</pre>'
                          Ausgabe:

                          Array
                          (
                          [-1] => ..
                          [1178641305] => 00000004.log
                          [1179349132] => Statistics.log
                          [1179477618] => pirol.jpg
                          )
                          So wie schaff ich es nun die neuste datei auszulesen?

                          Kommentar


                          • #14
                            du hast anscheinend selbst nicht verstanden, was da passiert.
                            was ist der rückgabewert von ftp_mdtm()?
                            welche bedeutung hat es, wenn es "-1" ist? oder eine zahl ungleich "-1"? was heißt es, wenn eine größer/kleiner als die andere ist?

                            Kommentar


                            • #15
                              was ist der rückgabewert von ftp_mdtm()?
                              unix-timestamp

                              welche bedeutung hat es, wenn es "-1" ist?
                              das die Unix-timestamp nicht erfolgreich abgefragt wurde.

                              oder eine zahl ungleich "-1"?
                              Das ist doch dann unix timestampcode

                              Nun eine frage ob meine vermutung stimmt. Wird die Unix timestamp zahl immer größer um so "später" um so mehr zeit vergangen ist ist?
                              Wenn ja wie kann ich mein array dann so ordnen das ich das element mit der höchsten zahl als key erhalten

                              Kommentar

                              Lädt...
                              X