避免在PHP中使用DOMDocument XML警告

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了避免在PHP中使用DOMDocument XML警告脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我从服务器获取XMl文件,有时我收到一个非有效的xML文件,因为这样我就得到一个警告:
Warning: DOMDocument::load() [domdocument.load]: Start tag expected,'<' not found in

如何抓住这个警告并删除文件

你有两个选择.在load()调用中使用@ error control运算符,例如@ $dom-> load(),它有点慢,因为它全局将display_errors的值更改为off,执行该函数并将其设置为on.

一个选择,我个人喜欢(我讨厌@运算符,我不能忍受在我的代码中看到)是保存旧的libxml_use_internal_errors值,启用它使用libxml_use_internal_errors(TRUE),调用函数,清除错误缓冲并恢复旧值.这是我的代码中的一段代码

<?PHP
$prevIoUs_value = libxml_use_internal_errors(TRUE);
$doc->loadhtml((string)$e->response->getBody());
libxml_clear_errors();
libxml_use_internal_errors($PRevIoUs_value);

我不能评论答案,所以我会写在这里

>迈克尔解决方案使它不那么严格,但它仍然会出现一些错误的警告:

nadav@shesek:~$PHP -r '$dom=new DOMDocument; $dom->strictErrorChecking = FALSE ; $dom->loadHTML("<xy></zx>");'
PHP Warning:  DOMDocument::loadhtml(): Tag xy invalid in EntITy,line: 1 in Command line code on line 1

>不@L_126_26@Fran Verona的建议 – 全球禁用错误报告是你永远应该做的.在生产中,设置自己的错误处理程序并向用户显示一个更漂亮的消息,并确保错误记录在某个地方 – 但不能完全禁用它.将error_reporting设置为0将导致PHP禁用错误日志记录.> Xeon06解决方案是有问题的,因为您正在为特定代码段执行整个脚本错误处理程序.使用您自己的错误处理程序,只是忽略错误,导致与Fran的解决方案相同的问题.

脚本宝典总结

以上是脚本宝典为你收集整理的避免在PHP中使用DOMDocument XML警告全部内容,希望文章能够帮你解决避免在PHP中使用DOMDocument XML警告所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。