最近上线的一个项目,在无意中检查日志的时候发现大量的错误信息:
[ 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);
- 本文固定链接: https://www.cnmiss.cn/?p=471
- 转载请注明: admin 于 我的博客 – 技术分享 发表