加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

避免在PHP中使用DOMDocument XML警告

发布时间:2020-12-13 14:06:14 所属栏目:PHP教程 来源:网络整理
导读:我从服务器获取xml文件,有时我收到一个非有效的xml文件,因为这样我就得到一个警告: Warning: DOMDocument::load() [domdocument.load]: Start tag expected,'' not found in 如何抓住这个警告并删除该文件? 你有两个选择.在load()调用中使用@ error contro
我从服务器获取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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读