Метод text класса Crawler
Метод text класса Crawler извлекает текст из узлов,
соответствующих текущей выборке. Метод возвращает строку,
склеенную из текстового содержимого всех найденных элементов.
Если выборка пуста, возвращается пустая строка.
Синтаксис
public function text(): string
Пример
Давайте создадим объект Crawler с HTML-кодом
и извлечём текст из тега h1:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\DomCrawler\Crawler;
class CrawlerController extends AbstractController
{
public function index(): Response
{
$html = '<h1>hello</h1>';
$crawler = new Crawler($html);
$res = $crawler->filter('h1')->text();
return new Response($res);
}
}
?>
Результат выполнения кода:
hello
Пример
Давайте извлечём текст сразу из нескольких элементов.
Метод text вернёт склеенную строку:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\DomCrawler\Crawler;
class CrawlerController extends AbstractController
{
public function index(): Response
{
$html = '<ul><li>abcde</li><li>article</li><li>user</li></ul>';
$crawler = new Crawler($html);
$res = $crawler->filter('li')->text();
return new Response($res);
}
}
?>
Результат выполнения кода:
abcdearticleuser
Пример
Давайте извлечём текст из элемента с вложенными тегами.
Метод text игнорирует разметку и возвращает только текст:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\DomCrawler\Crawler;
class CrawlerController extends AbstractController
{
public function index(): Response
{
$html = '<div><p>hello <b>abcde</b> user</p></div>';
$crawler = new Crawler($html);
$res = $crawler->filter('p')->text();
return new Response($res);
}
}
?>
Результат выполнения кода:
hello abcde user