首页 > 学习笔记 > 屏蔽 DomDocument::loadHTML() 输出警告信息
2019
01-12

屏蔽 DomDocument::loadHTML() 输出警告信息

最近上线的一个项目,在无意中检查日志的时候发现大量的错误信息:

[ error ] [2]DOMDocument::loadHTML(): Attribute solid redefined in Entity, line: 2
[ error ] [2]DOMDocument::loadHTML(): error parsing attribute name in Entity, line: 2
[ error ] [2]DOMDocument::loadHTML(): Unexpected end tag : td in Entity, line: 2

经过排查发现原来是由于加载HTML的时候,由于HTML的标签不完整或不规范照成的,例如有的标签未闭合,或者引号缺失等。

当前的目的是忽略这个日志信息,于是找到了如下方案:

// 禁用标准的 libxml 错误,并启用用户错误处理
$libxml_previous_state = libxml_use_internal_errors(true);
// 解析
$this->document->loadHTML($html);
// 清空 libxml 错误缓冲
libxml_clear_errors();
// 还原之前设置
libxml_use_internal_errors($libxml_previous_state);

最后编辑:
作者:admin
这个作者貌似有点懒,什么都没有留下。