网站建设公司—PHP如何实现下载远程图片保存到本地
信息来源:深圳市易捷网络科技有限公司
信息发布时间:2024/12/22
PHP自定义函数,如何实现下载远程图片保存到本地?请看一下代码/**功能:php实现下载远程图片保存到本地*参数:文件url,保存文件目录,保存文件名称,使用的下载方式*当保存文件名称为空时则使用远程文件原来的名称*/functiongetImage($url,$save_dir='',$filename='',$type=0){if(trim($url)==''){returnarray('file_name'=>'','save_path'=>'','error'=>1);}if(trim($save_dir)==''){$save_dir='./';}if(trim($filename)==''){//保存文件名$ext=strrchr($url,'.');if($ext!='.gif'&&$ext!='.jpg'&&$ext!='.jpeg'&&$ext!='.JPG'&&$ext!='.GIF'&&$ext!='.JPEG'&&$ext!='.png'&&$ext!='.PNG'){returnarray('file_name'=>'','save_path'=>'','error'=>3);}//$filename=time().$ext;$arr=@explode('/',$url);$cc=count($arr);$dd=$cc-1;$filename=$arr[$dd];}if(0!==strrpos($save_dir,'/')){$save_dir.='/';}//创建保存目录if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){returnarray('file_name'=>'','save_path'=>'','error'=>5);}//获取远程文件所采用的方法if($type){$ch=curl_init();$timeout=5;curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);$img=curl_exec($ch);curl_close($ch);}else{ob_start();readfile($url);$img=ob_get_contents();ob_end_clean();}//$size=strlen($img);//文件大小$fp2=@fopen($save_dir.$filename,'a');fwrite($fp2,$img);fclose($fp2);unset($img,$url);returnarray('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);}注意:需要提前创建文件夹本文章来源易捷网络:网站建设公司