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

Метод images

Метод images класса Crawler извлекает все изображения из текущего фрагмента HTML-документа. Метод не принимает параметров и возвращает массив, каждый элемент которого является объектом Crawler, обёрнутым вокруг тега img.

По умолчанию метод ищет только теги img без учёта регистра. Результат удобно перебирать в цикле и извлекать атрибуты src, alt, title через метод attr.

Синтаксис

$images = $crawler->images();

Пример

Давайте создадим объект Crawler с HTML-кодом, содержащим несколько изображений, и получим их через метод images:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentDomCrawlerCrawler; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(): Response { $html = '<div> <img src="/img/a.png" alt="first"> <img src="/img/b.png" alt="second"> <img src="/img/c.png" alt="third"> </div>'; $crawler = new Crawler($html); $images = $crawler->images(); $res = count($images); return new Response((string) $res); } } ?>

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

3

Пример

Давайте переберём все изображения и выведем значения их атрибутов src:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentDomCrawlerCrawler; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(): Response { $html = '<div> <img src="/img/a.png" alt="first"> <img src="/img/b.png" alt="second"> </div>'; $crawler = new Crawler($html); $images = $crawler->images(); $res = []; foreach ($images as $image) { $res[] = $image->attr('src'); } return new Response(implode(', ', $res)); } } ?>

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

"/img/a.png, /img/b.png"

Пример

Давайте получим только первое изображение через индекс [0] и выведем его атрибут alt:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentDomCrawlerCrawler; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(): Response { $html = '<img src="/img/a.png" alt="abcde">'; $crawler = new Crawler($html); $images = $crawler->images(); $alt = $images[0]->attr('alt'); return new Response($alt); } } ?>

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

"abcde"

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

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