ホームページ >バックエンド開発 >PHPチュートリアル >PHP でルートとディレクトリ トラバーサル インジケーターを除いてサブディレクトリを取得する方法

PHP でルートとディレクトリ トラバーサル インジケーターを除いてサブディレクトリを取得する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-14 14:35:02982ブラウズ

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

PHP を使用したサブディレクトリの取得

PHP では、ルートとディレクトリのトラバーサルを除く、特定のディレクトリ内のすべてのサブディレクトリにアクセスする必要が生じる場合があります。インジケーター。 2 つの異なるアプローチを使用してこれを実現する方法を次に示します。

オプション 1: glob() を使用する

glob() 関数は、ファイルとディレクトリをリストする簡単な方法を提供します。特定のパターンに一致します。サブディレクトリのみを取得するには、GLOB_ONLYDIR オプションとともに使用します。

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

オプション 2: array_filter を使用する

array_filter を使用すると、コールバック関数に基づいて配列をフィルタリングできます。 。これを使用して、「.」を除外してサブディレクトリを識別できます。および ".." と glob() の結果のフィルタリング:

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

関数での使用

サブディレクトリの配列を取得したら、それを渡すことができますさらに処理するための関数に渡します。たとえば、次の関数はすべてのサブディレクトリのパスを出力します:

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

以上がPHP でルートとディレクトリ トラバーサル インジケーターを除いてサブディレクトリを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。