Dom\HTMLDocument::createFromString

(PHP 8 >= 8.4.0)

Dom\HTMLDocument::createFromStringРазбирает содержимое строки как HTML-документ

Описание

public static Dom\HTMLDocument::createFromString(string $source, int $options = 0, ?string $overrideEncoding = null): Dom\HTMLDocument

Разбирает HTML-документ из строки в соответствии со стандартом.

Список параметров

source
Строка с HTML-разметкой для разбора.
options

Побитовое ИЛИ (OR) констант опций libxml.

Разрешается также передавать константу Dom\HTML_NO_DEFAULT_NS, чтобы отключить пространства имён HTML-документа и элемента шаблона. Перед передачей константы лучше убедиться, что последствия этого понятны.
overrideEncoding
Кодировка, в которой создали документ. Метод попытается определить наиболее вероятную кодировку, если кодировку не указали.

Возвращаемые значения

Метод возвращает разобранный документ как экземпляр класса Dom\HTMLDocument.

Ошибки

  • Метод выбрасывает ошибку ValueError, если аргумент options содержит недопустимые параметры.
  • Метод выбрасывает ошибку ValueError, если в аргументе overrideEncoding передали неизвестную кодировку.

Примеры

Пример #1 Пример разбора строки методом Dom\HTMLDocument::createFromString()

Пример разбирает образец строки.

<?php
$dom
= Dom\HTMLDocument::createFromString(<<<'HTML'
<!DOCTYPE html>
<html>
<body>
<p>Привет, мир!</p>
</body>
</html>
HTML);
echo
$dom->saveHtml();
?>

Результат выполнения приведённого примера:

<!DOCTYPE html><html><head></head><body>
    <p>Привет, мир!</p>
</body></html>

Примечания

Замечание: Метод не считает пробельные символы в тегах html и head существенными, поэтому иногда такие символы теряются при форматировании.

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

Добавить

Примечания пользователей 1 note

up
1
kawewong at gmail dot com
29 days ago
To load HTML without doctype, html, body elements use `LIBXML_HTML_NOIMPLIED` flag.

<?php
$html
= <<<EOT
<div class="row">
<div class="col"><h1 id="heading" class="col1-heading">Hello</h1></div>
<div class="col"><p class="paragraph">Hello world.</p>
</div>
EOT;
$doc = \DOM\HTMLDocument::createFromString($html, LIBXML_HTML_NOIMPLIED);
echo
htmlspecialchars($doc->saveHTML(), ENT_QUOTES);
?>
To Top