Heim >Backend-Entwicklung >PHP-Tutorial >Wie rufe ich Unterverzeichnisse in PHP ab, ohne Root- und Directory-Traversal-Indikatoren?

Wie rufe ich Unterverzeichnisse in PHP ab, ohne Root- und Directory-Traversal-Indikatoren?

Linda Hamilton
Linda HamiltonOriginal
2024-11-14 14:35:02990Durchsuche

How to Retrieve Subdirectories in PHP, Excluding Root and Directory Traversal Indicators?

Abrufen von Unterverzeichnissen mit PHP

In PHP müssen Sie möglicherweise auf alle Unterverzeichnisse innerhalb eines bestimmten Verzeichnisses zugreifen, mit Ausnahme des Stammverzeichnisses und der Verzeichnisdurchquerung Indikatoren. So können Sie dies mit zwei verschiedenen Ansätzen erreichen.

Option 1: Verwendung von glob()

Die Funktion glob() bietet eine einfache Möglichkeit, Dateien und Verzeichnisse aufzulisten einem bestimmten Muster entsprechen. Um nur Unterverzeichnisse abzurufen, verwenden Sie es mit der Option GLOB_ONLYDIR:

$subdirectories = glob('*/*', GLOB_ONLYDIR);

Option 2: Array_filter verwenden

array_filter ermöglicht es Ihnen, ein Array basierend auf einer Rückruffunktion zu filtern . Sie können damit Unterverzeichnisse identifizieren, indem Sie „.“ ausschließen. und „..“ und das Filtern der glob()-Ergebnisse:

function is_subdirectory($item) { return is_dir($item) && $item != '.' && $item != '..'; }
$subdirectories = array_filter(glob('*'), 'is_subdirectory');

Verwendung in einer Funktion

Sobald Sie das Array der Unterverzeichnisse haben, können Sie es übergeben an eine Funktion zur weiteren Bearbeitung übergeben. Die folgende Funktion gibt beispielsweise die Pfade aller Unterverzeichnisse aus:

function print_subdirectory_paths($subdirectories) {
  foreach ($subdirectories as $subdirectory) {
    echo $subdirectory . PHP_EOL;
  }
}

Das obige ist der detaillierte Inhalt vonWie rufe ich Unterverzeichnisse in PHP ab, ohne Root- und Directory-Traversal-Indikatoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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