@Shimpanze

PHP DomDocument: почему, после обработки, неправильно закрыты теги?

Здравствуйте!

Почему после обработки:

<?php

$html = <<<'HTML'
<p>Привет, Мир!<br>
Привет, Мир!</p>

<ul>
  <li>Привет, Мир!</li>
  <li>Привет, Мир!</li>
  <li>Привет, Мир!</li>
</ul>
HTML;

$dom = new DOMDocument;
$html = mb_convert_encoding( $html, 'HTML-ENTITIES', 'UTF-8' );
@$dom->loadHTML( $html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD );

$paragraphs = $dom->getElementsByTagName('p');

foreach ( $paragraphs as $paragraph ) {
  $paragraph->setAttribute( 'class', 'class-name' );
}

echo $dom->saveHTML();


...неправильно закрыт тег параграфа?

<p>Привет, Мир!<br>
Привет, Мир!<ul>
<li>Привет, Мир!</li>
<li>Привет, Мир!</li>
<li>Привет, Мир!</li>
</ul></p>


Спасибо!
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
TommyV888
@TommyV888 Куратор тега PHP
-
У вас возникает эта проблема из-за использования LIBXML_HTML_NOIMPLIED, либо не используйте его, либо оберните код в <html> тег, вот тут говорится об этом подробнее:
https://stackoverflow.com/a/36547335
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы