我遇到了解决“破坏”问题的麻烦。 html字符串,使用PHP
我面临在html字符串上使用substr的常见问题,导致标签损坏。
我已设法修复所有损坏的标签,但图片标签除外,因为标签本身不完整,它甚至不是开头标签,
例如,假设您有一个字符串:
<div><img alt="foo" title="bar"
我真的想添加一个>
来关闭它,我的其他脚本知道如何自动关闭div
。
有没有人对如何抓住损坏的<img>
代码并自动修复它们有任何想法?
我见过很多解决方案,包括DOMdocument,tidy和HTMLpurifier,但他们似乎无法解决这个具体问题。
任何帮助都将不胜感激。
答案 0 :(得分:4)
是的,您可以使用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);