PHP自定義函數,如何下載遠程圖片并保存到本地?請看一下代碼
/*
*功能:php實現下載遠程圖片并保存到本地
*參數:文件url、保存文件目錄、保存文件名、使用的下載方式
*當保存的文件名為空時,將使用遠程文件的原始名稱
*/
函數getImage($url, $save_dir='', $filename='', $type=0){
如果(修剪($url)==''){
返回數組('file_name'='','save_path'='','error'=1);
}
如果(修剪($save_dir)==''){
$save_dir='./';
}
if(trim($filename)==''){//保存文件名
$ext=strrchr($url,'.');
如果($ext!='.gif' $ext!='.jpg' $ext!='.jpeg' $ext!='.jpg' $ext!='.GIF' $ext!='.JPEG' $ext!='.png'$ext!='.PNG'){
返回數組('file_name'='','save_path'='','error'=3);
}
//$文件名=時間().$ext;
$arr=@explode('/',$url);
$cc=計數($arr);
$dd=$cc-1;
$文件名=$arr[$dd];
}
if(0!==strrpos($save_dir,'/')){
$save_dir.='/';
}
//創建保存目錄
如果(!file_exists($save_dir)!mkdir($save_dir,0777,true)){
返回數組('file_name'='','save_path'='','error'=5);
}
//用于獲取遠程文件的方法
如果($類型){
$ch=curl_init();
$超時=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);
}別的{
ob_start();
讀取文件($url);
$img=ob_get_contents();
ob_end_clean();
}
//$大小=strlen($img);
//文件大小
$fp2=@fopen($save_dir.$filename,'a');
fwrite($fp2,$img);
fclose($fp2);
取消設置($img,$url);
返回數組('file_name'=$filename,'save_path'=$save_dir.$filename,'error'=0);
}
注意:需要提前創建文件夾
本文來源推來客:網站建設公司
我們專注高端建站,小程序開發、軟件系統定制開發、BUG修復、物聯網開發、各類API接口對接開發等。十余年開發經驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!