ホームページ  >  記事  >  バックエンド開発  >  php は遠くの写真を取得してダウンロードし、ローカルに保存します

php は遠くの写真を取得してダウンロードし、ローカルに保存します

WBOY
WBOYオリジナル
2016-06-13 11:57:20882ブラウズ

php はリモート画像を取得してダウンロードし、ローカルに保存します

/**功能:php完美实现下载远程图片保存到本地*参数:文件url,保存文件目录,保存文件名称,使用的下载方式*当保存文件名称为空时则使用远程文件原来的名称*/function getImage($url,$save_dir='',$filename='',$type=0){    if(trim($url)==''){		return array('file_name'=>'','save_path'=>'','error'=>1);	}	if(trim($save_dir)==''){		$save_dir='./';	}    if(trim($filename)==''){//保存文件名        $ext=strrchr($url,'.');        if($ext!='.gif'&&$ext!='.jpg'){			return array('file_name'=>'','save_path'=>'','error'=>3);		}        $filename=time().$ext;    }	if(0!==strrpos($save_dir,'/')){		$save_dir.='/';	}	//创建保存目录	if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){		return array('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);    //文件大小     [email protected]($save_dir.$filename,'a');    fwrite($fp2,$img);    fclose($fp2);	unset($img,$url);    return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。