我们使用 simplexml_load_string
加载 XML 字符串的时候,如果 XML 的字符不规范,PHP 会报 parser error 的错误,如果你的系统开启了 error 显示或者写到 log 的话,那么将会有一堆错误,怎么处理呢?我们可以设置自己处理 XML 的错误。
首先使用函数 libxml_use_internal_errors()
关闭 XML 错误,然后使用 libxml_get_errors()
获取相关的错误进行自定义处理。
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if (false === $sxe) {
echo "加载 XML 错误n";
foreach(libxml_get_errors() as $error) {
echo "t", $error->message;
}
}
最终的输出结果是:
代码语言:javascript复制加载 XML 错误
Blank needed here
parsing XML declaration: '?>' expected
Opening and ending tag mismatch: xml line 1 and broken
Premature end of data in tag broken line 1