我正在编写一个
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));