Heim >Backend-Entwicklung >PHP-Tutorial >So lesen Sie alle Dateinamen in einem Verzeichnis und Unterverzeichnissen in PHP
Dieser Artikel stellt hauptsächlich vor, wie PHP alle Dateinamen in einem Verzeichnis und Unterverzeichnissen liest, vergleicht mehrere gängige Methoden und fasst schließlich eine PHP-Methode zum Lesen aller Dateinamen in einem Verzeichnis und Unterverzeichnissen zusammen Ich brauche es, um darauf zu verweisen. Die spezifische Implementierungsmethode ist wie folgt:
Im Allgemeinen gibt es viele Möglichkeiten, den Dateinamen im Verzeichnis in PHP zu lesen. Die einfachste ist ist scandir, der spezifische Code lautet wie folgt:
Der Code lautet wie folgt:
$dir="./caxa/"; $file=scandir($dir); print_r($file);
Der etwas kompliziertere stammt aus dem PHP-Handbuch:
Der Code lautet wie folgt:
$dir = "/etc/php5/"; // Open a known directory, and proceed to read its contents if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { echo "filename: $file : filetype: " . filetype($dir . $file) . "\n"; } closedir($dh); } }
Diese können nur Dateien im aktuell angegebenen Verzeichnis lesen, aber keine Dateien in Unterverzeichnissen. Es stellte sich heraus, dass ich einen Code geschrieben hatte, um alle Verzeichnisse in einer Schleife zu löschen. Ich musste alle Dateien in Unterverzeichnissen einzeln löschen, einschließlich mehrerer Ebenen. Aber Sie müssen nur den Dateinamen auslesen, was etwas komplizierter ist. Ich habe einen gefunden, der online funktioniert. Ich habe die Fehlermeldung wie folgt geändert:
Der Code lautet wie folgt:
function searchDir($path,&$data){ if(is_dir($path)){ $dp=dir($path); while($file=$dp->read()){ if($file!='.'&& $file!='..'){ searchDir($path.'/'.$file,$data); } } $dp->close(); } if(is_file($path)){ $data[]=$path; } } function getDir($dir){ $data=array(); searchDir($dir,$data); return $data; } print_r(getDir('.'));