Ищу PHP-скрипт, который может очистить плохой HTML.

Я сейчас пишу сценарий командной строки PHP для преобразования сотен фрагментов HTML в Markdown с использованием библиотеки Markdownify . Однако, Я столкнулся с ситуацией, когда часть моего HTML недостаточно хорошо структурирована для использования с Markdownify. Поэтому сначала мне нужно отправить свой HTML через некую библиотеку, которая может очистить его и добавить дополнительные закрывающие теги и т. Д. Я буду работать с частичными блоками HTML, а не с полными HTML-документами, поэтому возвращаемый HTML должен быть частичным (и не включать тип документа и т. д.)

Знаете ли вы сценарий PHP, который может преобразовывать HTML в XHTML?

Решение:

Используйте класс PHP DOMDocument . Он отформатирует ваш 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('(.*)(.*)(.*)', '\2', $goodHtml));

7
задан Andrew 8 December 2010 в 19:10
поделиться