html — закрыть или исправить испорченный тег img с помощью переполнения стека

У меня проблемы с исправлением «сломанной» строки HTML, используя PHP

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

Мне удалось исправить все сломанные теги, кроме одного изображения, так как сам тег не завершен, это даже не открывающий тег,

Например, предположим, у вас есть строка:

<div><img alt="foo" title="bar"

Я бы очень хотел добавить > чтобы закрыть это, и мои другие сценарии знают, как закрыть div автоматически.

У кого-нибудь есть идеи как поймать сломанного <img> теги и автоматически исправлять их?

Я видел много решений, включая DOMdocument, tidy и HTMLpurifier, но они, похоже, не решают эту конкретную проблему.

Любая помощь будет оценена.

0

Решение

Да, вы можете восстановить метки, используя 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);

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]