如何从curl(https网站)下载图像?
文件保存在我的电脑上,但为什么它是空白的(0KB)?
function save_image($img,$fullpath){
$ch = curl_init ($img);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
$rawdata=curl_exec($ch);
curl_close ($ch);
$fp = fopen($fullpath,'w');
fwrite($fp, $rawdata);
fclose($fp);
}
save_image("https://domain.com/file.jpg","image.jpg");
Run Code Online (Sandbox Code Playgroud)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
Run Code Online (Sandbox Code Playgroud)
应该是:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
Run Code Online (Sandbox Code Playgroud)
所以curl知道它应该返回数据而不是回应它.
此外,有时您需要做更多工作才能获得curl接受的SSL证书:
在PHP中使用cURL访问受HTTPS(SSL/TLS)保护的站点
编辑:
根据您的使用情况,您还应将Alix Axel推荐的CURLOPT_HEADER设置为false.
在SSL方面,我希望你花时间阅读我建议的链接,因为有几种不同的方法来处理SSL,如果数据不敏感,Alix推荐的修复可能没问题,但确实否定了安全性,因为它迫使CURL接受任何服务器CERTS.
| 归档时间: |
|
| 查看次数: |
8690 次 |
| 最近记录: |