php - 下载图像 URL - PHP

标签 php curl

我正在尝试创建一个脚本来将图像下载到本地服务器,但图像下载时遇到一些问题。我已经在标准图像( http://www.urmob.co.uk/i/l/2860.jpg )上测试了以下脚本,并且它工作正常,但是,当尝试从以下位置下载图像时

https://s3-eu-west-1.amazonaws.com/mobile-phones-direct/phone/portraitimage/full/52122ad8-c918-450d-be10-5921c0a870cb.png

它没有文件内容,因此图像不起作用。我相信这与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" >';

它对我有用:

enter image description here


如果您想继续使用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/

相关文章:

php - 我需要使用单个查询将值插入到两个不同的表中

php - 即插即用登录系统?

php - 如何在 php 中用法语对月份名称进行硬编码?

javascript - PHP 中的 URL 编码正斜杠

python - 如何调试请求库?

json - 如何使用 CURL 对 JSON POST 请求中的部分字符进行转义?

linux - Curl - 通过 FTPS 上传 Excel 文件

linux - curl 命令获取时间

php - 如何在 Controller symfony 2 中渲染 Twig 宏

PHP int 比较——为什么要先给变量加 0?