php网络图片下载至本地(可批量下载)

By | 2020年5月13日
<?php
	class dlImageByWeb{
		/**
		 *	下载图片
		 */
		public function dl($url,$dir='',$orgName=0){
			$state = @file_get_contents($url,0,null,0,1);//获取网络资源的字符内容
			$dlDir = $dir; //保存到本地路径地址
			$orgName = $orgName?1:0;  //是否使用原文件名
			//获取原文件类型

		    if($state){ 

		        ob_start();//打开输出

		        readfile($url);//输出图片文件

		        $img = ob_get_contents();//得到浏览器输出

		        ob_end_clean();//清除输出并关闭
		        if($orgName){
		        	$orgFileName = $key =basename($url);
		        	$filename = './webDl/'.$orgFileName;
		        }else{
		        	$fileType='jpg';
		        	//type:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
			        if((list($width, $height, $type, $attr) = getimagesize($url)) !== false) {
			        	switch ($type) {
			        		case 1:
			        			$fileType='gif';
			        			break;
			        		case 2:
			        			$fileType='jpg';
			        			break;
			        		case 3:
			        			$fileType='png';
			        			break;
			        		case 4:
			        			$fileType='swf';
			        			break;
			        		case 5:
			        			$fileType='psd';
			        			break;
			        		case 6:
			        			$fileType='bmp';
			        			break;
			        		
			        		default:
			        			$fileType='jpg';
			        			break;
			        	}
			        	$key=.time().rand(1000,9999).'.'.$fileType;
			        	$filename = './webDl/'.$key;//文件名称与路径
			        }else{
			        	return 0;
			        }
		        }
		        
		        $fp2 = @fopen($filename, "a");        

		        fwrite($fp2, $img);//向当前目录写入图片文件,并重新命名

		        fclose($fp2);

		        return ['key'=>$key,'path'=>$filename];
		    }else{

		        return 0;
		    }
		}

		/**
		 *	批量下载图片
		 */
		public function batchDl($urlArr=[]){
			if($urlArr&&is_array($urlArr)){
				foreach ($urlArr as $key => $value) {
					$r=$this->dl($value,'',1);
				}
			}
			return 0;
		}


	}
	$n=new dlImageByWeb();
	$urlArr=[
		'./1094945555.jpg',
		'./578891674.jpg',
		'./1048935941.jpg',
		'./129132983.jpg',
		'./413464489.jpg',
		'./450980248.jpg',
		'./530963476.jpg',
		'./626627045.jpg',
		'./243084559.jpg',
		'./195507533.jpg'
	];
	$n->batchDl($urlArr);
?>

网络下载类打包文件下载:

链接:https://pan.baidu.com/s/1ymppjheob7N7BXqUMCMIYA
提取码:sgz4

发表评论

电子邮件地址不会被公开。 必填项已用*标注