如何在格式错误的数据上关闭simpleXML?[复制]

How to shut up simpleXML on malformed data? [duplicate]

提问人:Pekka 提问时间:11/4/2009 更新时间:1/5/2012 访问量:6502

问:

我有一个XML设置,我正在尝试使用simplexml加载。XML 设置可由 Web 应用程序的用户进行编辑。我想自己处理错误并向用户界面发送警告消息。但是,simplexml 会不断对格式错误的 XML 抛出警告,而不是悄悄地返回 false。

如何使simpleXML关闭而不抛出警告?有没有选择?

PHP 简单 XML

评论


答:

3赞 RMcLeod 11/4/2009 #1

在抛出警告的函数前面放一个 @,这将禁止显示所有警告消息。

评论

2赞 catchdave 6/1/2013
永远不要使用错误抑制。我还没有在PHP中发现一个案例,通过适当的测试(例如,根据公认的答案),您可以在执行函数之前测试失败。错误抑制经常会回来咬你,因为你永远无法追溯原始错误(因为你抑制了它)。最佳做法是处理失败情况,而不是隐藏问题。一个常见的例子是在打开文件之前使用 /。最后,错误抑制对性能略有影响(但这只是一个小小的好处)。file_existsis_readable
1赞 Obaid Maroof 8/12/2013
那么,错误抑制(@)的目的是什么呢???
18赞 Ben James 11/4/2009 #2

使用 libxml_use_internal_errors() 可禁止显示 XML 错误。

然后,如果需要,可以使用 libxml_get_errors() 检查任何错误。