如何使用 PHP 从 url 保存图像


How to save an image from url using PHP?

图片网址为:http://phim.xixam.com/thumb/giotdang.jpeg

我的代码是:

$img = 'http://phim.xixam.com/thumb/giotdang.jpeg';
file_puts_content('abc.jpg', file_get_contents($img));

但我收到警告:

file_get_contents(http://phim.xixam.com/thumb/giotdang.jpeg) [function.file-get-content]: 无法打开流:HTTP 请求失败!HTTP/1.0 403 禁止在 ...

我尝试通过cURL保存此图像,但不起作用。

php 代码在技术上似乎是正确的,但似乎由于某种原因您被阻止了。假设您在同一台计算机上从浏览器尝试它并且它可以工作,我会猜测用户代理字符串过滤。尝试将有效的用户代理字符串与 cURL 一起使用。

从 http://curl.haxx.se/docs/manpage.html:

-A, --用户代理

(HTTP) 指定要发送到 HTTP 服务器的用户代理字符串。如果此字段未设置为"Mozilla/4.0",则一些做得不好的CGI会失败。自 对字符串中的空格进行编码,用单引号将字符串括起来 标志着。当然,这也可以使用 -H、--header 选项进行设置。

如果多次设置此选项,则最后一个将是使用的那个。