我正在尝试创建一个脚本来将图像下载到本地服务器,但图像下载时遇到一些问题。我已经在标准图像( http://www.urmob.co.uk/i/l/2860.jpg )上测试了以下脚本,并且它工作正常,但是,当尝试从以下位置下载图像时
它没有文件内容,因此图像不起作用。我相信这与HTTPS有关?我最初尝试了标准的 file_get_contents 但不起作用,现在我正在尝试 CURL 版本,但它仍然不起作用。我正在使用的函数如下所示:
function grab_image($url,$saveto){
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$raw=curl_exec($ch);
curl_close ($ch);
if(file_exists($saveto)){
unlink($saveto);
}
$fp = fopen($saveto,'x');
fwrite($fp, $raw);
fclose($fp);
}
有人知道为什么这不起作用吗?
谢谢
克雷格
最佳答案
这很简单:
test.php
<?php
// image source
$image_url = 'https://s3-eu-west-1.amazonaws.com/mobile-phones-direct/phone/portraitimage/full/52122ad8-c918-450d-be10-5921c0a870cb.png';
// download image
file_put_contents('downloaded_image.jpg', file_get_contents($image_url));
// display
echo '<img src="downloaded_image.jpg" >';
它对我有用:
如果您想继续使用curl版本并修复该ssl错误,请将以下内容添加到您的代码中:
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
关于php - 下载图像 URL - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23537839/