php获取远程图片并下载保存到本地
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
/**功能: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);//文件大小$fp2=@fopen($save_dir.$filename,'a');fwrite($fp2,$img);fclose($fp2);unset($img,$url);return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);}
|

浙公网安备 33010602011771号