php - file_get_contents() 的问题

标签 php file-get-contents

我正在用 PHP 编写一段代码,该代码从大约 20 个网站中获取特定格式的内容。

除一个网站外,所有网站均正常工作。现在,问题来了。
我正在使用 file_get_contents() 从网站获取图像并将其保存在我的服务器上。该图像存在于远程服务器上,可以通过浏览器访问,但我在通过代码执行此操作时收到 404 响应。

我无法理解这背后的问题,因为此方法非常适合其他网站。

这与发送的 header 有关吗?任何帮助将不胜感激。

最佳答案

答案可能是:是的...

我想他们正在检查用户代理。

这些内容会在您的 header 中发送。您可以伪造您的用户代理。但不要使用 file_get_contents(),因为该函数不允许伪造您的用户代理。 查看curl .

编辑 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!

关于php - file_get_contents() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22336757/

相关文章:

php - 触发器删除表,然后用 Mysql 插入值

PHPExcel 单元格保护

php - 在 file_get_contents 之后在 php 中调整图像大小

php - 获取 URL 重定向时 File_get_contents() 不工作

php - file_get_contents 不返回整个网页

php - 带有空文件的 file_get_contents 无法正常工作 PHP

PHP 按钮不起作用

php - php 中的全局变量弄乱了我的 html!

php - file_get_contents() 将 UTF-8 转换为 ISO-8859-1

php - woocommerce 以编程方式应用优惠券错误