我很难过。代码完全相同,它们都由相同的机架空间托管。 。 。一个工作正常,另一个产生错误:
[domdocument.load]:无法打开流:HTTP请求失败!
代码非常简单:
$doc = new DOMDocument();
$page_url = **valid XML feed**
$doc->load($page_url);
所以我不明白导致错误的原因。 。 。关于要检查什么的任何想法?
此外:一切都工作正常,直到昨天 - 所以它一定是昨天实施的一个(不幸的是很多)补丁。只需要了解从哪里开始寻找
一些调查显示这是饲料的问题 - (确实是工作API) - 切换到另一个工作提供者&一切正常,仍然困惑为什么它会在开发中工作而不是生产(除非由于某种原因确实阻止了我们)
答案 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地址。 。 。无论如何,谢谢你的建议。