Tidy не закрывается & lt; hr & gt; тег

Я пытаюсь использовать функции Tidy, чтобы очистить HTML-строку, которая не имеет закрытия </hr> тег:

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

Однако, когда я использую следующие строки:

$tidy = tidy_parse_string($data);
tidy_clean_repair($tidy);
echo ($tidy);

</hr> тег не добавляется, вывод:

<html>
<head>
<title>301 Moved Permanently</title>
</head>
<body bgcolor='white'>
<center>
<h1>301 Moved Permanently</h1>
</center>
<hr>
<center>nginx</center>
</body>
</html>

Является ли аккуратная библиотека просто не в состоянии закрыть <hr> тег или я что-то упустил?

2

Решение

Ну, то <hr> тег (тематический перерыв) закрывать нельзя.

От W3C -> час:

Элемент hr является пустым элементом. Элемент hr должен иметь начальный тег, но не должен иметь конечного тега.


Если вам действительно нужно, вы можете сделать это:

$html = str_replace('<hr>', '<hr/>', $html);

Что будет притворяться тег самозамыкающийся и предотвратить SimpleXMLElement от истерики насчет того, чтобы не закрывать это.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]