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

Метод attr класса Crawler

Метод attr класса Crawler возвращает значение указанного атрибута первого элемента в текущей выборке. Первым параметром передаётся имя атрибута. Если атрибут отсутствует, метод возвращает null.

Синтаксис

public function attr(string $attribute): ?string

Пример

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

<?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 = '<a href="/user">link</a>'; $crawler = new Crawler($html); return new Response($crawler->attr('href')); } } ?>

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

"/user"

Пример

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

<?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">text</div>'; $crawler = new Crawler($html); return new Response($crawler->attr('class')); } } ?>

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

"article"

Пример

Если атрибут отсутствует, метод вернёт null. Давайте проверим это:

<?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>text</div>'; $crawler = new Crawler($html); var_dump($crawler->attr('id')); return new Response(); } } ?>

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

NULL

Пример

Метод работает с первым элементом выборки. Давайте получим атрибут у первого элемента списка:

<?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 = '<ul> <li data-id="1">a</li> <li data-id="2">b</li> </ul>'; $crawler = new Crawler($html); $items = $crawler->filter('li'); return new Response($items->attr('data-id')); } } ?>

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

"1"

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

  • класс Crawler,
    который парсит HTML и XML документы
  • метод filter,
    который выбирает элементы по CSS-селектору
  • метод text,
    который возвращает текст элемента
  • метод html,
    который возвращает HTML элемента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить