我在使用PHP修复一个“坏了的”html字符串时遇到了麻烦
我面临着在html字符串上使用substr的常见问题,这会导致标记的断裂。
我已经修复了所有破损的标签,除了图像标签,因为标签本身还没有完成,它甚至不是一个开始标记,
例如,假设您有一个字符串:
<div><img alt="foo" title="bar" 我真的想要添加一个>来关闭它,而我的其他脚本知道如何自动关闭div。
有没有人对如何捕获破损的<img>标记并自动修复它们有任何想法?
我见过许多解决方案,包括DOMdocument、tidy和HTMLpurifier,但它们似乎没有解决这个特定的问题。
任何帮助都将不胜感激。
发布于 2014-09-15 10:46:14
是的,您可以使用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);https://stackoverflow.com/questions/25846098
复制相似问题