我正在用PHP编写代码,该代码从20多个网站中以特定格式获取内容。
除一个网站外,所有网站均正常运行。现在,这里是问题。
我file_get_contents()
用来从网站获取图像并将其保存在我的服务器上。该图像存在于远程服务器上,可通过浏览器访问,但通过代码进行操作时得到404响应。
我无法理解其背后的问题,因为此方法可完美地适用于其他网站。
与发送的标头有关吗?任何帮助将不胜感激。
答案可能是:是的...
我想他们正在检查用户代理。
这些都发送到您的标头中。您可以伪造您的用户代理。但是不要使用file_get_contents()
,因为那不允许伪造用户代理。看着卷发。
编辑1
Barmar的链接显示了可以同时file_get_contents()
与其他用户代理一起使用的可能性。值得一提的是...
编辑2
但这也可能是有关检查引荐来源网址的问题。如果是这种情况,您确实需要使用curl
它才能设置引荐来源网址。
编辑3
现在已经看到了URL,并查看404
了您看到的错误(不是50x
),建议您检查URL是否已转义并正确解析。我看到该URL包含空格,域名后面有两个斜杠。检查是否将空格转义到%20中,以及是否不应将双斜杠剥离为仅一个斜杠。
所以
http://celebslam.celebuzz.com//bfm_gallery/2014/03/Lindsay Lohan 2 Broke Girls/gallery_enlarged/gallery_enlarged-lindsay-lohan-2-broke-girls-01.jpg
应该成为
http://celebslam.celebuzz.com/bfm_gallery/2014/03/Lindsay%20Lohan%202%20Broke%20Girls/gallery_enlarged/gallery_enlarged-lindsay-lohan-2-broke-girls-01.jpg
请注意,服务器是CaSe-SeNsItIvE!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句