У меня проблемы с исправлением «сломанной» строки HTML, используя PHP
Я сталкиваюсь с распространенной проблемой использования substr в html-строке, что приводит к битым тегам.
Мне удалось исправить все сломанные теги, кроме одного изображения, так как сам тег не завершен, это даже не открывающий тег,
Например, предположим, у вас есть строка:
<div><img alt="foo" title="bar"
Я бы очень хотел добавить >
чтобы закрыть это, и мои другие сценарии знают, как закрыть div
автоматически.
У кого-нибудь есть идеи как поймать сломанного <img>
теги и автоматически исправлять их?
Я видел много решений, включая DOMdocument, tidy и HTMLpurifier, но они, похоже, не решают эту конкретную проблему.
Любая помощь будет оценена.
Да, вы можете восстановить метки, используя DOMDocument
, (На основе примера):
$html = '<div><img alt="foo" title="bar"';
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_clear_errors();
$out = '';
foreach ($dom->getElementsByTagName('body')->item(0)->childNodes as $child) {
$out .= $dom->saveXML($child);
}
echo htmlentities($out);
Других решений пока нет …