解决PHP curl或file_get_contents下载图片损坏或无法打开的问题

通过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');

以上这篇解决PHP curl或file_get_contents下载图片损坏或无法打开的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • PHP下载远程图片的几种方法总结

    PHP下载远程图片的几种方法总结 本文演示3个从远程URL下载图片,并保存到本地文件中的方法,包括file_get_contents,curl和fopen. 1. 使用file_get_contents function dlfile($file_url, $save_to) { $content = file_get_contents($file_url); file_put_contents($save_to, $content); } 2.使用CURL function dlfile($f

  • php使用curl模拟浏览器表单上传文件或者图片的方法

    前言 在浏览器使用html中的input框我们可以实现文件的上传,表单元素选用 <input type="file"> 控件,form 表单需要设置 enctype="multipart/form-data" 属性.比如: <body> <form action="UploadFile.php" method="post" enctype="multipart/form-data&quo

  • PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)

    方法一: 在php中,抓取https的网站,提示如下的错误内容: Warning: file_get_contents() [function.file-get-contents]: failed to open stream: Invalid argument in I:Webmyphpa.php on line 16 打开php.ini文件找到 ;extension=php_openssl.dll ,去掉双引号";" ,重启web服务器即可. apache服务器的话,可以同时启用m

  • 解决PHP curl或file_get_contents下载图片损坏或无法打开的问题

    通过curl或者file_get_contents获取抓取远程图片并且保存到本地,发现损坏了很多图片,比如访问 https://fuss10.elemecdn.com/c/6c/69a7740b4ab864ac0639eb583d68fjpeg.jpeg 是可以访问到图片的,但是curl或者file_get_contents时图片下载下来了却损坏了, 就类似这样: 原因是图片被gizp了 解决办法一: $url = 'https://fuss10.elemecdn.com/c/6c/69a774

  • PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题

    PHP CURL与file_get_contents函数都可以获取远程服务器上的文件保存到本地,但在性能上面两者完全不在同一个级别,下面我先来介绍PHP CURL或file_get_contents函数应用例子,然后再简单的给各位介绍一下它们的一些小区别吧. 推荐方法 CURL获取 <?php $c = curl_init(); $url = 'www.jb51.net'; curl_setopt($c, CURLOPT_URL, $url); curl_setopt($c, CURLOPT_R

  • PHP curl 或 file_get_contents 获取需要授权页面的方法

    今天因工作需要,需要用 curl / file_get_contents 获取需要授权(Authorization)的页面内容,解决后写了这篇文章分享给大家. PHP curl 扩展,能够在服务器端发起POST/GET请求,访问页面,并能获取页面的返回数据. 例如要获取的页面:http://localhost/server.php <?php $content = isset($_POST['content'])? $_POST['content'] : ''; header('content-

  • PHP通过CURL实现定时任务的图片抓取功能示例

    本文实例讲述了PHP通过CURL实现定时任务的图片抓取功能.分享给大家供大家参考,具体如下: 下文为各位介绍一个PHP定时任务通过CURL图片的抓取例子,希望例子对大家帮助,基本思路就是通过一个URL连接,将所有图片的地址抓取下来,然后循环打开图片,利用文件操作函数下载下来,保存到本地,并且把图片的alt属性也抓取下来,最后将数据保存到自己数据库. 废话不多说,看程序就能明白了,其中,需要用到PHP定时任务和PHP的一个第三方插件simple_html_dom.php 的使用,参考simple_

  • node.js突破nginx防盗链机制,下载图片案例分析 原创

    问题 今天项目需求要求采集几个网站的信息,包括一些区块链统计图表之类的信息. 笔者使用的是node.js+axios库发送get请求来获取在图片,下载到本地.测试代码如下: import fs from 'fs'; import path from 'path'; import http from 'http'; import https from 'https'; const __dirname = path.resolve(); let filePath = path.join(__dirn

  • 快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)

    记录两个项目开发中遇到的问题,一个是ECharts外部调用保存为图片操作,一个是workflow工作流连接曲线onmouseenter和onmouseleave事件由于鼠标移动过快触发问题. 一.外部按钮调用ECharts图表的保存为图片操作 最近使用ECharts库绘制图表,依据需求希望可以把图表设置的保存为图片操作可以在图表外部调用,主要是希望可以和项目之前的下载图片操作界面保持一致.然后上网找了一些方法,看了看也没遇到一个可以满意的.后来,突然想到了echart开放了源码,可以看看源码,找

  • php正则匹配文章中的远程图片地址并下载图片至本地

    使用php的正则表达式来实现: $content = '这里是文章内容,这里插入一张图片测试 <img src="XXXXXXXXXXXXXXXXXXXX">'; $content = stripslashes ( $content ); $img_array = array (); // 匹配所有远程图片 preg_match_all ( "/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png

  • Android实现多线程下载图片的方法

    很多时候我们需要在Android设备上下载远程服务器上的图片进行显示,今天整理出两种比较好的方法来实现远程图片的下载. 方法一.直接通过Android提供的Http类访问远程服务器,这里AndroidHttpClient是SDK 2.2中新出的方法,API Level为8,大家需要注意下,静态访问可以直接调用,如果SDK版本较低可以考虑Apache的Http库,当然HttpURLConnection 或URLConnection也可以. static Bitmap downloadBitmapB

  • PHP使用pcntl_fork实现多进程下载图片的方法

    本文实例讲述了PHP使用pcntl_fork实现多进程下载图片的方法.分享给大家供大家参考.具体分析如下: PHP pcntl_fork - 在当前进程当前位置产生分支,子进程,译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程号,而子进程得到的是0. 注意:PHP有个pcntl_fork的函数可以实现多进程,但要加载pcntl拓展,而且只有在linux下才能编译这个拓展. 1.首先在ubuntu下编译pc

  • nodejs制作爬虫实现批量下载图片

    今天想获取一大批猫的图片,然后就在360流浪器搜索框中输入 猫 ,然后点击图片.就看到了一大波猫的图片: http://image.so.com/i?q=%E7%8... ,我在想啊,要是审查元素,一张张手动下载,多麻烦,所以打算写程序来实现.不写不知道,一写发现里面还是有很多道道的. 1. 爬取图片链接 因为之前也写过nodejs爬虫功能(参见:NodeJS制作爬虫全过程),所以觉得应该很简单,就用cheerio来处理dom啦,结果打印一下啥也没有,后来查看源代码: 发现 waterfall_

随机推荐