Heim >Backend-Entwicklung >PHP-Tutorial >So lesen Sie alle Dateinamen in einem Verzeichnis und Unterverzeichnissen in PHP

So lesen Sie alle Dateinamen in einem Verzeichnis und Unterverzeichnissen in PHP

巴扎黑
巴扎黑Original
2017-06-09 11:42:203110Durchsuche

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('.'));
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn