2014-02-13 31 views
0

三个小时前,我在我的网站上工作,然后我睡了一觉,现在我的file_get_contents请求无法正常工作。例如file_get_contents 3小时前工作 - 现在不

$Url = sprintf("http://www.wowhead.com/item=%u?xml", $EntryId); 
$Xml = file_get_contents($Url);  

显示ID可能是30987.形成的网址:http://www.wowhead.com/item=30987?xml 这个工程在浏览器中 - 但在我的地盘我得到:failed to open stream: HTTP request failed!

我真的不明白 - 因为它在3小时前完美运行。

有没有人有任何想法?谢谢。

+3

从3小时开始计算出发生了什么变化 – Anigel

+0

@Anigel,我知道的没什么 - 我去睡觉了,然后回去工作。如果需要进一步的信息,我会很乐意发布它 - 我试图找出HTTP错误是什么返回,但无法弄清楚如何。 – Brugsen

+1

也许他们阻止你访问他们的页面往往 – 2014-02-13 02:49:08

回答

0

他们以这种方式阅读HTTP内容可能是问题所在。你正在阅读它作为一个文件。这不会发送正确的HTTP标头。请求格式不正确时,服务器可能拒绝提供页面内容。阅读URL的内容使用HTTPRequest

+0

卷曲是一个更好的选择 –

+0

@LozCherone嗨,我似乎缺少'HTTPRequest'类 - 但我试着卷曲,卷曲的作品。非常奇怪,你有什么想法,为什么这会卷曲,而不是file_get_contents - 记住,它的工作3小时前? – Brugsen

+0

@KevinMallinson正如我告诉已经file_get_contents只是打开一个套接字,并尝试阅读。它不发送HTTP请求。 HTTP服务器有权拒绝任何不正确的HTTP协议的客户端。 curl会谈HTTP协议。因此卷曲起作用。 – RaviH

相关问题