Я нахожусь в процессе написания сценария командной строки PHP для преобразования сотен фрагментов HTML в Markdown с использованием библиотеки Markdownify .Однако я столкнулся с ситуацией, когда некоторые из моих HTML-структур недостаточно хорошо структурированы для использования с Markdownify.Поэтому сначала мне нужно отправить свой HTML через некоторую библиотеку, которая может очистить его и добавить необязательные закрывающие теги и т. Д. Я буду работать с частичными блоками HTML, а не с полными документами HTML, поэтому возвращаемый HTML-код должен быть частичным (ине включает тип документа и т. д.).
Вам известен сценарий PHP, который может конвертировать HTML в XHTML?
Решение:
Использование PHP DOMDocument class.Он отформатирует ваш HTML, даже если он сломан.Затем вы можете извлечь очищенный HTML:
libxml_use_internal_errors(true); //use this to prevent warning messages from displaying because of the bad HTML
$doc = new DOMDocument();
$doc->loadHTML($badHtml);
$goodHtml = $doc->saveHTML();
Это вернет полный HTML-документ (с очищенной версией в теге body), даже если я передал ему частичный блок HTML, поэтому яможет извлечь очищенное частичное с помощью этого регулярного выражения:
$goodHtmlPartial = trim(ereg_replace('(.*)<body>(.*)</body>(.*)', '\2', $goodHtml));