2009-08-21 4 views

Antwort

0

Ab PHP 5.1 können Sie einfach filemtime() mit einem gültigen ftp://... Dateipfad verwenden.

Beispiel:

$user = 'peter'; 
$password = 'secret123'; 
$mtime = filemtime("ftp://$user:[email protected]/some_file.txt"); 
+0

bitte Beispiel angeben –

3

Das Format eines FTP-Listenausgabe nicht für Computer-Analyse wurde standardisiert, so dass, wenn Sie alle möglichen FTP-Server unterstützen möchten, können Sie mit Ihrem eigenen Parser zu kommen brauchen.

Aber lass uns mit dem einfachsten Weg beginnen: PHP unterstützt eine FTP wrapper. Seit PHP 5.1 können Sie filemtime() verwenden, um die Änderungsdatei einer Remote-Datei mithilfe von ftp://user:[email protected]/path/file als Argument abzurufen.

Sie können auch versuchen, curl_getinfo() der PHP cURL-Erweiterung zu verwenden.

Wenn das nicht funktioniert, weil Ihr FTP-Server von AIX, VMS, EBCDIC oder einer anderen "exotischen" Natur ist, können Sie die Verzeichnisliste manuell analysieren.

Vor allem, wenn Sie sehr glücklich sind, unterstützt der FTP-Server MLST oder MLSD Befehl. Sie können sie unter Verwendung ftp_raw() in PHP ausgeben. Die Ausgabe wird in RFC 3659 erklärt. Das Datum kann leicht analysiert werden und wird in UTC zurückgegeben. Wenn Sie weniger Glück haben, müssen Sie auf den alten LIST Befehl zurückgreifen, der von ftp_rawlist() verwendet wird. Es gibt keinen Standard dafür, wie die Ausgabe aussieht, also brauchen Sie Heuristiken. FileZilla ist sehr gut im Umgang mit herkömmlichen FTP-Servern. Wenn Sie wirklich einen Parser brauchen und etwas Zeit haben, port einfach FileZilla's directory listing parser nach PHP.

Verwandte Themen