Я использую PHP DOMDocument для анализа и нормализации представленного пользователем HTML с помощью метода loadHTML
для синтаксического анализа содержимого, а затем получения корректного результата с помощью saveHTML
:
$dom= new DOMDocument();
$dom->loadHTML('<div><p>Hello World');
$well_formed= $dom->saveHTML();
echo($well_formed);
Это делает красивую работу по разбору фрагмента и добавлению соответствующих закрывающих тегов. Проблема в том, что я также получаю кучу тегов, которые я не хочу, таких как <!DOCTYPE>
, <html>
, <head>
и <body>
. Я понимаю, что каждый хорошо сформированный HTML-документ нуждается в этих тегах, но фрагмент HTML, который я нормализую, будет вставлен в существующий действительный документ.