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

Метод matches

Метод matches класса Crawler проверяет, соответствует ли узел, на который указывает текущий объект Crawler, заданному CSS-селектору. Метод принимает первым параметром строку с селектором и возвращает true, если узел соответствует селектору, и false в противном случае. Метод удобен, когда нужно проверить конкретный элемент DOM-дерева без выборки новых узлов.

Следует помнить, что метод matches работает с первым узлом в коллекции Crawler. Если коллекция пуста, метод вернёт false.

Синтаксис

$crawler->matches(string $selector): bool

Пример

Давайте создадим объект Crawler из HTML-строки и проверим, соответствует ли корневой узел селектору 'div':

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\DomCrawler\Crawler; class ArticleController extends AbstractController { public function index(): Response { $html = '<div class="article">hello</div>'; $crawler = new Crawler($html); $res = $crawler->matches('div'); return new Response(var_export($res, true)); } } ?>

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

true

Пример

Давайте проверим узел, полученный через метод filter, на соответствие селектору с классом:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\DomCrawler\Crawler; class ArticleController extends AbstractController { public function index(): Response { $html = '<div class="article">hello</div>'; $crawler = new Crawler($html); $node = $crawler->filter('.article'); $res = $node->matches('.article'); return new Response(var_export($res, true)); } } ?>

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

true

Пример

Давайте проверим узел на несоответствие селектору:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\DomCrawler\Crawler; class ArticleController extends AbstractController { public function index(): Response { $html = '<div class="article">hello</div>'; $crawler = new Crawler($html); $node = $crawler->filter('.article'); $res = $node->matches('.user'); return new Response(var_export($res, true)); } } ?>

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

false

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

  • класс Crawler,
    который представляет DOM-дерево документа
  • метод filter,
    который выбирает узлы по CSS-селектору
  • метод filterXPath,
    который выбирает узлы по XPath-выражению
  • метод closest,
    который ищет ближайшего предка по селектору
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить