【问题标题】:Warning while load xml using the DOMDocument使用 DOMDocument 加载 xml 时出现警告
【发布时间】:2011-08-17 13:26:26
【问题描述】:

我使用以下代码加载 xml 以进行进一步处理,而在加载自身时,它会在客户端服务器中显示以下警告,但在我的本地机器上工作正常。

代码:

$xmlDoc = new DOMDocument();

$xmlDoc->load('http://www.domainname.com/xmlfilename');

警告:DOMDocument::load(http://www.domainname.com/xmlfilename) [domdocument.load]:打开流失败:连接超时

警告:DOMDocument::load() [domdocument.load]:I/O 警告:失败 加载外部实体“http://www.domainname.com/xmlfilename”

【问题讨论】:

  • 您的服务器似乎无法访问该文档...

标签: php


【解决方案1】:

增加调用load之前的连接超时时间:

libxml_set_streams_context(
    stream_context_create(
        array('http' => array('timeout' => 120))
    )
);

ini_set('default_socket_timeout', 120);

【讨论】:

  • 我使用了你提供的两种解决方案,但仍然出现问题
  • 这个问题只发生在一个 url 上,其他的工作正常。
  • 您可以通过其他方式访问此网址吗?浏览器? wget?如果没有,那么服务器可能不可用。
  • 是的,我可以通过浏览器访问该 URL
【解决方案2】:

首先,确保您的客户端服务器配置了 allow_url_fopen 设置为 true

我还要检查服务器上的防火墙规则。也许它不允许发出 HTTP 请求。

【讨论】:

  • 如果显示“连接超时”,则不能是allow_url_fopen 问题。
  • @Gordon 是的,不确定那个,更多的是预防措施。如果未启用 fopen 包装器,不知道DOMDocument::load() 会抛出什么样的错误。
猜你喜欢
  • 2016-09-02
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
  • 1970-01-01
  • 2011-11-28
相关资源
最近更新 更多