Представим, что нам необходимо найти все файлы, которые имеют окончание .php в заданной папке и подпапках. Как это можно сделать в PHP ? Далее представлен один из примеров реализации.

Поиск файлов по маске в PHP

Представим, что нам необходимо найти все файлы, которые имеют окончание .php в заданной папке и подпапках. Как это можно сделать в PHP? Далее представлен один из примеров реализации.

Код:

// поиск файлов по маске
// $pattern - маска

function search_file_by($pattern, $flags = 0) {
    
    // поиск по маске в папке
    $files = glob($pattern, $flags); 
    foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR | GLOB_NOSORT) as $dir) 
        
        // поиск в подпапках
        $files = array_merge($files, search_file_by($dir .'/'. basename($pattern), $flags));
    }
    return $files;
}

Как использовать?

// найдет все php файлы в папках и подпаках
$php_files = search_file_by("*.php");
print_r($files);

// все текстовые файлы
$txt_files = search_file_by(".txt");
print_r($files);

Вот так просто с помошью рекрусии можно найти все файлы в иерархии каталогов по маске в PHP.