Php ';内容保存前&x27;滤波器
我有一个Wordpress插件,可以在发布后从帖子的HTML生成PDF 问题是,在插件生成PDF之前,我需要对HTML执行一些测试,而且我只能使用内置的DOM解析器 使用“content\u save\u pre”过滤器,我可以操作帖子内容并返回一个简单的字符串,一切正常。 但如果我尝试以下代码:Php ';内容保存前&x27;滤波器,php,wordpress,dom,Php,Wordpress,Dom,我有一个Wordpress插件,可以在发布后从帖子的HTML生成PDF 问题是,在插件生成PDF之前,我需要对HTML执行一些测试,而且我只能使用内置的DOM解析器 使用“content\u save\u pre”过滤器,我可以操作帖子内容并返回一个简单的字符串,一切正常。 但如果我尝试以下代码: public function lintHTML( $post_content ) { $dom = new DOMDocument(); $dom->loadHTML( $po
public function lintHTML( $post_content ) {
$dom = new DOMDocument();
$dom->loadHTML( $post_content );
return $dom->saveHTML();
}
当我发布我的帖子时,一切都崩溃了,我在浏览器上收到一条“此页面不工作”的消息
当我回到编辑后的页面时,一切似乎都正常。$post\u内容不是一个完整的HTML文档,而是一个HTML片段。PHP DOMDocument将尝试在保存之前通过将其嵌入适当的HTML文档来修复此问题
$dom=new DOMDocument();
$dom->loadHTML('<div>AAAA</div>');
echo $dom->saveHTML();
$dom=newdomdocument();
$dom->loadHTML('AAAA');
echo$dom->saveHTML();
收益率:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><div>AAAA</div></body></html>
AAAA
因此,您需要删除“填充”以获得转换后的帖子内容。谢谢,我尝试过将其剪切,但没有解决问题。您确实需要删除“填充”,但还有其他问题。能否将$dom->saveHTML()的输出转储到错误日志中,并在问题中显示出来。