使用 PHP 关闭或修复损坏的 img 标签

Pat*_*ick 1 html php tags

我在使用 PHP 修复“损坏”的 html 字符串时遇到了麻烦

我面临在 html 字符串上使用 substr 的常见问题,这会导致标签损坏。

我设法修复了所有损坏的标签,除了图像一个,因为标签本身并不完整,它甚至不是一个开始标签,

例如,假设您有一个字符串:

<div><img alt="foo" title="bar" 
Run Code Online (Sandbox Code Playgroud)

我真的很想添加一个>来关闭它,而我的其他脚本知道如何div自动关闭它。

有没有人对如何捕获损坏的<img>标签并自动修复它们有任何想法?

我见过很多解决方案,包括 DOMdocument、tidy 和 HTMLpurifier,但它们似乎没有解决这个特定问题。

任何帮助,将不胜感激。

Kev*_*vin 7

是的,您可以使用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);
Run Code Online (Sandbox Code Playgroud)