为什么domdocument会在dev sie上加载,但会在生产中出错?

时间:2011-05-18 17:54:11

标签: php xml domdocument

我很难过。代码完全相同,它们都由相同的机架空间托管。 。 。一个工作正常,另一个产生错误:

  

[domdocument.load]:无法打开流:HTTP请求失败!

代码非常简单:

$doc = new DOMDocument();
$page_url = **valid XML feed**
$doc->load($page_url);

所以我不明白导致错误的原因。 。 。关于要检查什么的任何想法?


此外:一切都工作正常,直到昨天 - 所以它一定是昨天实施的一个(不幸的是很多)补丁。只需要了解从哪里开始寻找


一些调查显示这是饲料的问题 - (确实是工作API) - 切换到另一个工作提供者&一切正常,仍然困惑为什么它会在开发中工作而不是生产(除非由于某种原因确实阻止了我们)

4 个答案:

答案 0 :(得分:1)

系统上的URL包装器可能已被禁用。请问你能检查一下PHP ini变量allow_url_fopen的值吗?如果它被禁用,则不允许从URL中获取文件。

echo ini_get('allow_url_fopen');

答案 1 :(得分:0)

也许:

http://www.php.net/manual/en/domdocument.load.php#91384

  

Jonas Due Vesterheden 09年6月9日03:18
  我在通过HTTP加载文档时遇到了问题。我会得到这样的错误:

     

警告:DOMDocument :: load(http://external/document.xml):无法打开流:HTTP请求失败! HTTP / 1.1 500内部服务器错误

     

该文档可以在浏览器中正常加载并使用wget。问题是我的系统(OS X和Linux)上的DOMDocument :: load()没有发送任何User-Agent标头,这有些奇怪的原因使得Microsoft-IIS / 6.0以500错误响应。

答案 2 :(得分:0)

如果您使用的是远程供稿(不是在每台服务器本地的机器上),那么可能是因为与allow_url_fopen相关的内容。通常,出于安全原因,远程加载文件就好像它们是本地资源一样。

答案 3 :(得分:0)

好的我发现了问题:api提供商阻止了IP地址。 。 。无论如何,谢谢你的建议。