Heim > Artikel > Backend-Entwicklung > Beispiel für die Verwendung der PHP-Funktion scandir() zum Ausschließen bestimmter Verzeichnisse
scandir() gibt ein Array von Dateien und Verzeichnissen im angegebenen Verzeichnis zurück. Bei Erfolg wird ein Array von Dateien und Verzeichnissen zurückgegeben. Gibt bei einem Fehler FALSE zurück. Wenn das Verzeichnis kein Verzeichnis ist, wird ein Fehler der Stufe E_WARNING ausgegeben.
Syntax
scandir(directory,sorting_order,context);
Parameter | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|
Verzeichnis | Erforderlich. Gibt die zu scannenden Verzeichnisse an. | ||||||||
sorting_order |
Wenn auf SCANDIR_SORT_DESCENDING oder 1 gesetzt, wird alphabetisch in absteigender Reihenfolge sortiert. Wenn auf SCANDIR_SORT_NONE gesetzt, werden unsortierte Ergebnisse zurückgegeben.<?php print_r(scandir('test_directory')); ?> |
||||||||
Kontext | Optional. Gibt die Umgebung für Verzeichnishandles an. context ist eine Reihe von Optionen, die das Verhalten von Verzeichnis-Streams ändern. |
Beispiel:
Der Code lautet wie folgt:Array ( [0]=>. [1]=>.. [2]=>1.txt [3]=>2.txt )
Array ( [0]=>1.txt [1]=>2.txt )Die Ausgabe lautet wie folgt:
In den meisten Fällen benötigen Sie nur das Dateilisten-Array des Verzeichnisses, wie folgt:
<?php functionfind_all_files($dir) { $root = scandir($dir); foreach ($rootas$value) { if($value === '.' || $value === '..'){ continue ; } if(is_file("$dir/$value")){ $result[] = "$dir/$value"; continue; } foreach(find_all_files("$dir/$value")as$value) { $result[] = $value; } } return $result; } ?>
Dies wird normalerweise durch den Ausschluss von Array-Elementen „.“ oder „..“ gelöst : Der Code lautet wie folgt: Eine andere Methode besteht darin, die Funktion array_diff
<?php $directory='/path/to/my/directory'; $scanned_directory=array_diff(scandir($directory),array('..','.')); ?>
zu verwenden, um das durch Ausführen von erhaltene Array zu entfernen Scandir-Funktion:
Der Code lautet wie folgt:Normalerweise generiert die Codeverwaltung .svn-Dateien oder .htaccess und andere Dateien, die die Verzeichniszugriffsberechtigungen einschränken. Daher ist es bequemer, über die Funktion array_diff zu filtern.Das obige ist der detaillierte Inhalt vonBeispiel für die Verwendung der PHP-Funktion scandir() zum Ausschließen bestimmter Verzeichnisse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!