Метод forms класса Crawler
Метод forms класса Crawler предназначен для извлечения форм из HTML-документа. Он возвращает объект Form, содержащий коллекцию найденных форм. Если формы не найдены, возвращается пустая коллекция. Метод не принимает обязательных параметров, но может принимать селектор для фильтрации форм по имени или индексу.
Синтаксис
$form = $crawler->forms();
$form = $crawler->forms($selector);
Пример
Давайте создадим Crawler с простой HTML-формой и извлечём её с помощью метода forms:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentDomCrawlerCrawler;
class ArticleController extends AbstractController
{
public function index(): Response
{
$html = '<html><body><form name="article_form"><input name="title" value="hello"></form></body></html>';
$crawler = new Crawler($html);
$form = $crawler->forms();
return new Response($form->count());
}
}
?>
Результат выполнения кода:
1
Пример
Давайте получим конкретную форму по её имени и извлечём значение поля:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentDomCrawlerCrawler;
class ArticleController extends AbstractController
{
public function index(): Response
{
$html = '<html><body><form name="article_form"><input name="title" value="abcde"></form></body></html>';
$crawler = new Crawler($html);
$form = $crawler->forms()->get('article_form');
return new Response($form->get('title')->getValue());
}
}
?>
Результат выполнения кода:
"abcde"