Erstens ist es wichtig zu verstehen, wie ftp_nlist funktioniert. Diese Funktion fordert den Server über das FTP -Protokoll in die angegebene Verzeichnisliste an und gibt das Ergebnis als Array zurück. Bei versteckten Dateien schließt FTP_NLIST nicht automatisch die Dateien aus, beginnend mit Punkten ( . ). Das heißt, versteckte Dateien werden in der zurückgegebenen Dateiliste angezeigt, es sei denn, diese Dateien sind in der FTP -Serverkonfiguration oder im spezifischen Verzeichnis nicht verfügbar.
Dies kann überprüft werden, indem die zurückgegebene Dateiliste auf dem Server manuell überprüft wird. In vielen UNIX-basierten Systemen beginnen versteckte Dateien normalerweise mit Punkten ( . ) Und Dateien wie .Gitignore oder .bashrc fallen in diese Kategorie.
$ftp_connection = ftp_connect("ftp.m66.net");
ftp_login($ftp_connection, "username", "password");
$file_list = ftp_nlist($ftp_connection, "/path/to/directory");
print_r($file_list);
Im Array $ file_list , der vom obigen Code zurückgegeben wird, werden sie aufgelistet, wenn Dateien mit einem Punkt im Verzeichnis beginnen.
Da die von FTP_NLIST zurückgegebene Dateiliste möglicherweise versteckte Dateien enthalten kann, müssen wir feststellen, ob es sich bei der Datei in irgendeiner Weise um eine versteckte Datei handelt. Am direktesten ist es, zu überprüfen, ob der Dateiname mit einem Punkt ( . ) Beginnt.
foreach ($file_list as $file) {
if (strpos($file, '.') === 0) {
echo $file . " Es ist eine versteckte Datei\n";
} else {
echo $file . " 不Es ist eine versteckte Datei\n";
}
}
Der obige Code ermittelt, ob es sich bei der Datei um eine versteckte Datei handelt, indem es überprüft, ob das erste Zeichen des Dateinamens eine Punktnummer ist. Wenn der Dateiname mit einem Punkt beginnt, wird er als eine versteckte Datei angesehen.
Wenn Sie versteckte Dateien herausfiltern möchten, können Sie sie weiter verarbeiten, nachdem Sie die Dateiliste erhalten haben, und nur die Elemente, die keine versteckten Dateien sind. Zum Beispiel:
$visible_files = array_filter($file_list, function ($file) {
return strpos($file, '.') !== 0; // Filtern Sie die Dateien aus, beginnend mit Punkten
});
print_r($visible_files);
Auf diese Weise können Sie sicherstellen, dass die zurückgegebene Dateiliste keine versteckten Dateien enthält, die für Szenarien geeignet sind, in denen eine öffentliche Dateiliste angezeigt werden muss.
Die von FTP_NLIST zurückgegebene Dateiliste enthält standardmäßig versteckte Dateien, insbesondere in UNIX- und UNIX-ähnlichen Systemen, in denen versteckte Dateien mit Punkten beginnen. Um festzustellen, ob die Datei versteckt ist, können Sie überprüfen, ob der Dateiname mit einem Punkt beginnt. Wenn Sie versteckte Dateien herausfiltern müssen, können Sie die Funktion array_filter verwenden, um sie zu verarbeiten und Elemente beizubehalten, bei denen es sich nicht um versteckte Dateien handelt.