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);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM