Поиск файлов по маске в 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 с помощью итераторов.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.