Abrufen der Liste von Dateien über FTP
Will ich drucken der Liste der Dateien und nur die Dateien von einem FTP-server, hier ist, was ich erreichen konnte.
<?php
$ftp_server = "my ftp server";
$conn_id = ftp_connect($ftp_server);
$ftp_user_name = "ftp username";
$ftp_user_pass = "ftp password";
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
$contents = ftp_nlist($conn_id, '/');
for ($i = 0 ; $i < count($contents) ; $i++)
echo "<li>" . substr($contents[$i],1) . "</li>";
ftp_close($conn_id);
?>
aber diese druckt die Namen von Dateien und Ordnern. Wie kann ich drucken Sie einfach die Namen von Dateien (Dateien werden möglicherweise nicht haben Erweiterungen!)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Optionen:
1) können Sie
ftp_rawlist
stattftp_nlist
um die vollständige Liste für die Datei/das Verzeichnis, die zeigen sollte, ob es ein Verzeichnis ist. Jedoch, das format, die Liste hängt auf das Betriebssystem des ftp-Servers. Zum Beispiel auf einem unix - /linux-system die raw-Liste könnte wie folgt Aussehen:wo das "d" in der ersten Spalte werden Ihnen sagen, es ist ein Verzeichnis. Nicht sicher, was es würde Aussehen wie auf einem Windows-server.
2) für jede Datei name, den Sie zurück, versuchen Sie, die CD hinein. Wenn Sie können, es ist ein Verzeichnis!
if (!ftp_chdir(....){/*FILE*/}else{/*UP*/}
ftp_chdir
zu@ftp_chdir
zum unterdrücken der Warnung, aber bewusst sein, dass auch unterdrücken, legitime Fehler (zum Beispiel das Netzwerk nach unten gegangen).Hier ist ein Skript, dass es für Sie, mit freundlicher Genehmigung von einem poster auf ftp_nlist (PHP-Docs):
wenn Sie die ftp_rawlist etwa so:
Sollte, bekommen Sie näher an Ihr Ziel.
<dir>
in der Auflistung.Können Sie auch das
ftp_mdtm()
Funktion. Das gibt immer einen Fehler (-1), wenn es scheitert, das darauf hindeuten würde, ein Verzeichnis, da diese Funktion funktioniert nicht bei Verzeichnissen. Die einzige Einschränkung ist, dass es nicht funktioniert auf einigen Systemen (das Handbuch nicht welche), so würden Sie brauchen, um zu testen, ob es funktionierte zuerst.Wenn Sie in den gleichen server, die Sie tun können:
Für remote-server-Sie können überprüfen, ob Datei existiert mit anderen Methoden.