РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
702 of 1361 menu

Метод contains класса Finder

Метод contains класса Finder фильтрует файлы по их содержимому. Первым параметром передаётся искомая строка или регулярное выражение. Метод возвращает объект Finder, что позволяет строить цепочки вызовов. По умолчанию поиск идёт по всем файлам, добавленным в Finder через метод in или files.

Синтаксис

$finder->contains(string|array $pattern)

Пример

Давайте найдём все файлы, в которых встречается строка 'hello':

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentFinderFinder; use SymfonyComponentHttpFoundationResponse; class FinderController extends AbstractController { public function index(): Response { $finder = new Finder(); $finder->files()->in('src')->contains('hello'); $res = []; foreach ($finder as $file) { $res[] = $file->getRelativePathname(); } return new Response(implode(', ', $res)); } } ?>

Результат выполнения кода:

"src/Controller/FinderController.php"

Пример

Давайте передадим массив строк - файл подойдёт, если содержит хотя бы одну из них:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentFinderFinder; use SymfonyComponentHttpFoundationResponse; class FinderController extends AbstractController { public function index(): Response { $finder = new Finder(); $finder->files()->in('src')->contains(['hello', 'article']); $res = []; foreach ($finder as $file) { $res[] = $file->getRelativePathname(); } return new Response(implode(', ', $res)); } } ?>

Результат выполнения кода:

"src/Controller/ArticleController.php, src/Controller/FinderController.php"

Пример

Давайте используем регулярное выражение для поиска строки 'user' в начале файла:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentFinderFinder; use SymfonyComponentHttpFoundationResponse; class FinderController extends AbstractController { public function index(): Response { $finder = new Finder(); $finder->files()->in('src')->contains('/^user/m'); $res = []; foreach ($finder as $file) { $res[] = $file->getRelativePathname(); } return new Response(implode(', ', $res)); } } ?>

Результат выполнения кода:

"src/Controller/UserController.php"

Смотрите также

  • класс Finder,
    который выполняет поиск файлов и директорий
  • метод files,
    который ограничивает поиск только файлами
  • метод in,
    который задаёт директорию для поиска
  • метод notContains,
    который исключает файлы по содержимому
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить