PHP 8.6.0 Beta 1 is available for testing

Dom\HTMLDocument::createFromString

(PHP 8 >= 8.4.0)

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

Описание

public static function 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
7
kawewong at gmail dot com
1 year 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);
?>
+Добавить

AltStyle によって変換されたページ (->オリジナル) /