Поиск файлов в папке - это задача часто встречается при программировании на PHP . Решить данную задачу в PHP можно разными способами: с помощью функции dir (opendir, readdir и т.д.) , с помощью функций glob , а также с помощью PHP итераторов . Вот пример с итераторами я как раз вам сейчас и покажу.

Поиск файлов по маске в PHP с помощью итераторов

Поиск файлов в папке - это задача часто встречается при программировании на PHP. Решить данную задачу в PHP можно разными способами: с помощью функции dir (opendir, readdir и т.д.), с помощью функций glob, а также с помощью PHP итераторов. Вот пример с итераторами я как раз вам сейчас и покажу.

Код:

/**
* Возвращает список файлов в папке и подпапках
*
* @param $path string путь к папке
* @param $mask string регулярное выражение (без ограничителей #)
*

*/
function find_files_by_mask($path,$mask)
{
    // рекурсивный проход по папке и подпапкам
    $it  = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
    
    // фильтрация папок по регулярному выражению
    $ite = new RegexIterator($it, "#{$mask}#i", RegexIterator::MATCH);

    // массив найденных файлов
    $files = [];
    
    foreach ($ite as $file) {
        $files[] = $ite->getSubPathname(); //получение имени файла
    }

    return $files;
}

Используем так:

// поиск всех php файлов
$files = find_files_by_mask('.','.php$');

print_r($files);

Вот так можно реализовать поиск файлов по маске в PHP с помощью итераторов.