ホームページ >バックエンド開発 >PHPチュートリアル >PHP でファイルと特別なディレクトリを除くサブディレクトリを検索するにはどうすればよいですか?

PHP でファイルと特別なディレクトリを除くサブディレクトリを検索するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-13 10:42:02432ブラウズ

How to Find Subdirectories Excluding Files and Special Directories in PHP?

PHP でのファイルと特別なディレクトリを除くサブディレクトリの検索

Web 開発シナリオでは、次のような一般的な混乱を含まずに、指定されたディレクトリからサブディレクトリのみを取得します。通常のファイル、現在のディレクトリ、または親ディレクトリが一般的な要件になります。この記事では、PHP でこのタスクを実行する実用的な方法について詳しく説明します。

GLOB_ONLYDIR オプションを指定した Glob() の使用:

glob() 関数は、検索に便利な方法を提供します。指定されたパターンに一致するパス名。すべてのサブディレクトリを取得するには、glob() と GLOB_ONLYDIR オプションを組み合わせます。このオプションを使用すると、ファイル、「.」、および「..」を除外して、ディレクトリのみが返されるようになります。

$sub_directories = glob('./path/to/directory/*', GLOB_ONLYDIR);
foreach ($sub_directories as $directory) {
    // Use each directory in a function
}

is_dir 関数での Array_filter の使用:

Anotherこのアプローチには、array_filter() を使用して、「.」、「..」、および両方のファイルを含むディレクトリ内のすべての項目のリストをフィルタリングすることが含まれます。ディレクトリ。次のコードはこれを示しています。

$items = scandir('./path/to/directory');
$directories = array_filter($items, 'is_dir');
foreach ($directories as $directory) {
    // Exclude "." and ".." using ternary operators
    if ($directory != '.' && $directory != '..') {
        // Use each directory in a function
    }
}

提供された関数 array_filter(glob('*'), 'is_dir') は、名前に関係なくディレクトリをフィルター処理することに注意してください。ただし、名前にピリオドが含まれるサブディレクトリ (「.config」など) がある場合、それらはスキップされます。

以上がPHP でファイルと特別なディレクトリを除くサブディレクトリを検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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