1 /* 2 *功能:php多种方式完美实现下载远程图片保存到本地 3 *参数:文件url,保存文件名称,使用的下载方式 4 *当保存文件名称为空时则使用远程文件原来的名称 5 */ 6 function getImage($url,$filename='',$type=0){ 7 if($url==''){return false;} 8 if($filename==''){ 9 $ext=strrchr($url,'.'); 10 if($ext!='.gif' && $ext!='.jpg'){return false;} 11 $filename=time().$ext; 12 } 13 //文件保存路径 14 if($type){ 15 $ch=curl_init(); 16 $timeout=5; 17 curl_setopt($ch,CURLOPT_URL,$url); 18 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 19 curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 20 $img=curl_exec($ch); 21 curl_close($ch); 22 }else{ 23 ob_start(); 24 readfile($url); 25 $img=ob_get_contents(); 26 ob_end_clean(); 27 } 28 $size=strlen($img); 29 //文件大小 30 $fp2=@fopen($filename,'a'); 31 fwrite($fp2,$img); 32 fclose($fp2); 33 return $filename; 34 }
例二
1 <?php 2 // 3 // Function: 获取远程图片并把它保存到本地 4 // 5 // 6 // 确定您有把文件写入本地服务器的权限 7 // 8 // 9 // 变量说明: 10 // $url 是远程图片的完整URL地址,不能为空。 11 // $filename 是可选变量: 如果为空,本地文件名将基于时间和日期 12 // 自动生成. 13 function GrabImage($url,$filename="") { 14 if($url==""):return false;endif; 15 if($filename=="") { 16 $ext=strrchr($url,"."); 17 if($ext!=".gif" && $ext!=".jpg"):return false;endif; 18 $filename=date("dMYHis").$ext; 19 } 20 ob_start(); 21 readfile($url); 22 $img = ob_get_contents(); 23 ob_end_clean(); 24 $size = strlen($img); 25 $fp2=@fopen($filename, "a"); 26 fwrite($fp2,$img); 27 fclose($fp2); 28 return $filename; 29 } 30 31 $img=GrabImage("http://www.111cn.net",""); 32 if($img):echo '<pre><img src="'.$img.'"></pre>';else:echo "false";endif; 33 ?>