首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何解决 simplexml_load_string 的 parser error 问题

如何解决 simplexml_load_string 的 parser error 问题

作者头像
Denis
发布于 2023-04-15 09:59:01
发布于 2023-04-15 09:59:01
1.8K0
举报
文章被收录于专栏:WordPress果酱WordPress果酱

我们使用 simplexml_load_string 加载 XML 字符串的时候,如果 XML 的字符不规范,PHP 会报 parser error 的错误,如果你的系统开启了 error 显示或者写到 log 的话,那么将会有一堆错误,怎么处理呢?我们可以设置自己处理 XML 的错误。

首先使用函数 libxml_use_internal_errors() 关闭 XML 错误,然后使用 libxml_get_errors() 获取相关的错误进行自定义处理。

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档