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