Ankündigung

Einklappen
Keine Ankündigung bisher.

Datum einer Datei auf einen fremden Server herausfinden

Einklappen

Neue Werbung 2019

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

  • Datum einer Datei auf einen fremden Server herausfinden

    Hi

    Wie kann ich bei einen fremden Sever das Hochladedatum einer Datei mit PHP abfragen?

    Schöne Grüße

    Aze

  • #2
    Mit curl zb.

    Grüße.

    Kommentar


    • #3
      M.E. gar nicht.

      Kommentar


      • #4
        Jein.

        Ich habe ebend bei mir in Filezilla nachgeschaut, das Hochladedatum ist das "Last modified" Datum.

        Sofern du also die Datei auf dem Server nach dem hochladen nicht editierst - zu deutsch also das "last modified" datum unangetastet bleibt - kannst du das originale "hochlade Datum" auslesen.

        Funktionieren sollte es mit cURL.

        Die Frage ist nur ob du es per (s)FTP Protokoll hinbekommst oder du doch mit telnet ran musst.

        Protokolle bietet cURL genug:

        Protocols dict, file, ftp, ftps, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
        so dass es mich wundern würde, wenn es nicht funktioniert.

        Google is your friend

        Update1:
        PHP-Code:
        <?php
        $curl 
        curl_init();
        curl_setopt($curlCURLOPT_URL,"ftp://server/file");

        curl_setopt($curlCURLOPT_USERPWD"user:pass");
        curl_setopt($curlCURLOPT_RETURNTRANSFER1);
        curl_setopt($curlCURLOPT_NOBODY1);

        curl_setopt($curlCURLOPT_FILETIMETRUE );

        $result curl_exec ($curl);
        $time curl_getinfo($curlCURLINFO_FILETIME);
        print 
        date('d/m/y H:i:s'$time);

        curl_close ($curl);
        Quelle:
        http://stackoverflow.com/questions/2...using-php-curl

        Büdde

        Update2:

        Es scheint sogar ohne cURL zu funktionieren.
        PHP.net sagt jedoch, dass diese Funktion nicht überall funktioniert, daher einfach teste:

        PHP-Code:
        <?php

        $file 
        'somefile.txt';

        // set up basic connection
        $conn_id ftp_connect($ftp_server);

        // login with username and password
        $login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

        //  get the last modified time
        $buff ftp_mdtm($conn_id$file);

        if (
        $buff != -1) {
            
        // somefile.txt was last modified on: March 26 2003 14:16:41.
            
        echo "$file was last modified on : " date("F d Y H:i:s."$buff);
        } else {
            echo 
        "Couldn't get mdtime";
        }

        // close the connection
        ftp_close($conn_id);

        ?>
        Quelle:
        http://www.php.net/manual/en/function.ftp-mdtm.php

        Kommentar


        • #5
          bei einen fremden Sever
          Sofern er nicht Benutzername und Passwort hat wird ihm dein Code wohl nix bringen....

          Kommentar


          • #6
            Zitat von DrDreistein Beitrag anzeigen
            Sofern er nicht Benutzername und Passwort hat wird ihm dein Code wohl nix bringen....
            Das sollte selbstverständlich sein.

            Ich gehe davon aus, dass er weiß, dass man ohne Zugangsdaten keinen Quellcode, Größe der Datei oder sonst irgendwie auf das Filesystem zugreifen kann.

            Aus seinem Posting habe ich "fremden" Server mit "entfernten" Server übersetzt.

            Kommentar


            • #7
              Also die Zugangsdaten habe ich.Der Zugriff erfolgt ueber Http und Basic authentication.

              Schon mal danke fuer die ausfuehrliche Hilfe !

              Kommentar


              • #8
                Beide Lösungen gehen von eine FTP Zugriff aus, mit reinem HTTP wird das wohl nicht ohne weiteres funktionieren (dazu müsste die PHP Extension ausgeschaltet und die Verzeichnisanzeige im Webserver eingeschaltet werden, dann bekommt man das last_modified date im directory listing mitgeteilt und könnte sich das rausparsen).
                HTTP kennt keine Dateien...

                Kommentar


                • #9
                  Hmm..laut :http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

                  gibt es aber im Response ein Feld namens "Last modified".Da muß man doch dran kommen,oder ?

                  Kommentar


                  • #10
                    Zitat von aze Beitrag anzeigen
                    Hmm..laut [...] gibt es aber im Response ein Feld namens "Last modified".
                    Kann es geben - muss nicht.

                    Da muß man doch dran kommen,oder ?
                    Klar, warum nicht?

                    Bspw. mit get_headers sollte das ziemlich simpel sein.

                    Kommentar


                    • #11
                      Danke.Mit get_headers funktioniert es.

                      Wann ist der Array, der getHeaders eigentlich so:

                      PHP-Code:

                      Array
                      (
                          [
                      0] => HTTP/1.1 200 OK
                          
                      [1] => DateSat29 May 2004 12:28:13 GMT
                          
                      [2] => ServerApache/1.3.27 (Unix)  (Red-Hat/Linux)
                          [
                      3] => Last-ModifiedWed08 Jan 2003 23:11:55 GMT
                          
                      [4] => ETag"3f80f-1b6-3e1cb03b"
                          
                      [5] => Accept-Rangesbytes
                          
                      [6] => Content-Length438
                          
                      [7] => Connectionclose
                          
                      [8] => Content-Typetext/html


                      und wann so:

                      PHP-Code:

                      Array
                      (
                          [
                      0] => HTTP/1.1 200 OK
                          
                      [Date] => Sat29 May 2004 12:28:14 GMT
                          
                      [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
                          [
                      Last-Modified] => Wed08 Jan 2003 23:11:55 GMT
                          
                      [ETag] => "3f80f-1b6-3e1cb03b"
                          
                      [Accept-Ranges] => bytes
                          
                      [Content-Length] => 438
                          
                      [Connection] => close
                          
                      [Content-Type] => text/html

                      ?

                      Kommentar


                      • #12
                        Zitat von aze Beitrag anzeigen
                        Wann ist der Array, der getHeaders eigentlich so: [...] und wann so:
                        Vollständige und verständliche Sätze formulieren bitte, danke.

                        Kommentar


                        • #13
                          @aze:

                          Code:
                          Array 
                          ( 
                              [0] => HTTP/1.1 200 OK 
                              [1] => Date: Sat, 29 May 2004 12:28:13 GMT 
                              [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux) 
                              [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT 
                              [4] => ETag: "3f80f-1b6-3e1cb03b" 
                              [5] => Accept-Ranges: bytes 
                              [6] => Content-Length: 438 
                              [7] => Connection: close 
                              [8] => Content-Type: text/html 
                          )
                          PHP-Code:
                          get_headers($url); 
                          bzw:
                          Code:
                          Array 
                          ( 
                              [0] => HTTP/1.1 200 OK 
                              [Date] => Sat, 29 May 2004 12:28:14 GMT 
                              [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux) 
                              [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT 
                              [ETag] => "3f80f-1b6-3e1cb03b" 
                              [Accept-Ranges] => bytes 
                              [Content-Length] => 438 
                              [Connection] => close 
                              [Content-Type] => text/html 
                          )
                          PHP-Code:
                          get_headers($url1); 
                          weil:
                          If the optional format parameter is set to non-zero, get_headers() parses the response and sets the array's keys.

                          Kommentar


                          • #14
                            Zitat von ChrisB Beitrag anzeigen
                            Vollständige und verständliche Sätze formulieren bitte, danke.
                            sorry,war schon spät.

                            Kommentar

                            Lädt...
                            X