Найти, какая часть Html недействительна с PHP

Я попробовал несколько методов, чтобы узнать, какая часть строки html неверна.

$dom->loadHTML($badHtml); $tidy->cleanRepair(); simplexml_load_string($badHtml); 

Ничто не ясно, какая часть html недействительна. Возможно и дополнительный вариант конфигурации для одного из исправлений. Есть идеи ?

Мне нужно это, чтобы вручную исправить html-вход от пользователей. Я не хочу передавать на автоматизированные процессы.

Я попробую загрузить оскорбительный HTML в DOM-документ (как вы уже делаете), а затем с помощью simplexml исправить ситуацию. Вы должны иметь возможность запускать быстрый diff, чтобы увидеть, где находятся ошибки.

 error_reporting(0); $badHTML = '<p>Some <em><strong>badly</em> nested</stong> tags</p>'; $doc = new DOMDocument(); $doc->encoding = 'UTF-8'; $doc->loadHTML($badHTML); $goodHTML = simplexml_import_dom($doc)->asXML(); 

Вы можете сравнить очищенную и плохую версию с PHP Inline-Diff, найденную в ответ на этот вопрос stackoverflow .