寻找可以清理错误HTML的PHP​​脚本

前端之家收集整理的这篇文章主要介绍了寻找可以清理错误HTML的PHP​​脚本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个 PHP命令行脚本,使用 Markdownify库将数百个HTML片段转换为Markdown.但是,我遇到过一些情况,我的某些HTML结构不够好,无法与Markdownify一起使用.所以我首先需要通过一些库来发送我的HTML,它可以清理它并添加可选的结束标记等.我将使用HTML的部分块,而不是完整的HTML文档,因此返回的HTML必须是部分的(和不包括doctype等).

您知道可以将HTML转换为XHTML的PHP​​脚本吗?

解:

利用PHP DOMDocument class.即使它被破坏,它也会格式化你的HTML.然后,您可以提取已清理的HTML:

libxml_use_internal_errors(true); //use this to prevent warning messages from displaying because of the bad HTML

$doc = new DOMDocument();
$doc->loadHTML($badHtml);
$goodHtml = $doc->saveHTML();

这将返回一个完整的HTML文档(在body标签中包含已清理的版本),即使我传递了HTML的部分块,因此我可以使用此正则表达式提取已清理的部分:

$goodHtmlPartial = trim(ereg_replace('(.*)<body>(.*)</body>(.*)','\2',$goodHtml));

解决方法

您可以将HTML加载到 DOM然后将其作为XML加载到 save.

猜你在找的HTML相关文章