Метод innerText
Метод innerText класса Crawler возвращает текст
текущего узла без HTML-тегов. В отличие от метода
text,
который собирает текст всех потомков узла,
innerText возвращает текст только самого узла,
исключая содержимое вложенных элементов. Метод не принимает
параметров и возвращает строку.
Синтаксис
$crawler->innerText();
Пример
Давайте получим текст узла из HTML-разметки:
<?php
use SymfonyComponentDomCrawlerCrawler;
$html = '<div>hello <span>abcde</span></div>';
$crawler = new Crawler($html);
$res = $crawler->filter('div')->innerText();
echo $res;
?>
Результат выполнения кода:
"hello "
Пример
Сравним методы innerText и text на одном узле:
<?php
use SymfonyComponentDomCrawlerCrawler;
$html = '<div>hello <span>abcde</span></div>';
$crawler = new Crawler($html);
$node = $crawler->filter('div');
echo $node->innerText();
echo $node->text();
?>
Результат выполнения кода:
"hello "
"hello abcde"
Метод innerText вернул только текст самого узла
div, а метод text - текст вместе с содержимым
вложенного span.
Пример
Давайте извлечём текст из нескольких узлов:
<?php
use SymfonyComponentDomCrawlerCrawler;
$html = '<ul><li>article</li><li>user</li></ul>';
$crawler = new Crawler($html);
$res = $crawler->filter('li')->each(function (Crawler $node) {
return $node->innerText();
});
print_r($res);
?>
Результат выполнения кода:
["article", "user"]