当前位置: 首页 > 后端技术 > PHP

PHP下载远程图片

时间:2023-03-29 16:12:45 PHP

原文:https://www.codecasts.com/blo...在使用PHP做简单爬虫的时候,经常会遇到需要下载远程图片的需求,那么就简单实现一下这个需求吧。1.使用curl例如我们有下面两张图片:$images=['https://dn-laravist.qbox.me/2015-09-22_00-17-06j.png','https://dn-laravist.qbox.me/2015-09-23_00-58-03j.png'];第一步,我们可以直接用最简单的代码实现:functiondownload($url,$path='images/'){$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);$file=curl_exec($ch);curl_close($ch);$filename=pathinfo($url,PATHINFO_BASENAME);$resource=fopen($path.$filename,'a');fwrite($资源,$文件);fclose($资源);说到图片可以这样:foreach($imagesas$url){download($url);}2、封装一个类理清思路后,我们可以把这个基本功能封装成一个类:classSpider{publicfunctiondownloadImage($url,$path='images/'){$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);$file=curl_exec($ch);curl_close($ch);$filename=pathinfo($url,PATHINFO_BASENAME);$resource=fopen($path.$filename,'a');fwrite($资源,$文件);fclose($资源);此外,我们还可以像这样稍微优化一下:publicfunctiondownloadImage($url,$path='images/'){$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);$file=curl_exec($ch);curl_close($ch);$this->saveAsImage($url,$file,$path);}privatefunctionsaveAsImage($url,$file,$path){$filename=pathinfo($url,PATHINFO_BASENAME);$resource=fopen($path.$filename,'a');fwrite($资源,$文件);fclose($资源);}封装成一个类后,我们就可以这样调用下载图片的代码了:$spider=newSpider();foreach($imagesas$url){$spider->downloadImage($url);}这样处理基本远程图片下载就OK了

最新推荐
猜你喜欢