PHP curl或file_get_contents下载图片损坏或无法打开

本文介绍了解决使用curl或file_get_contents下载GZIP压缩的远程图片时出现损坏的方法。提供了两种解决方案:一是使用file_get_contents结合compress.zlib协议;二是修改curl设置,加入CURLOPT_ENCODING参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过curl或者file_get_contents获取抓取远程图片并且保存到本地,发现损坏了很多图片,比如访问

https://fuss10.elemecdn.com/c/6c/69a7740b4ab864ac0639eb583d68fjpeg.jpeg

是可以访问到图片的,但是curl或者file_get_contents时图片下载下来了却损坏了,

就类似这样:

原因是图片被gizp了

解决办法一:

 $url = 'https://fuss10.elemecdn.com/c/6c/69a7740b4ab864ac0639eb583d68fjpeg.jpeg';
 $img = file_get_contents("compress.zlib://".$url);
 $data = file_put_contents('E:/img/aaaaaaaaaaaa.jpeg',$img);

解决办法二:

在curl里加上这段代码

curl_setopt($ci, CURLOPT_ENCODING,'gzip');

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值