php获取远程图片并把它保存到本地

 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 ?>

 

posted @ 2013-08-21 09:36  科学家会武术  阅读(508)  评论(0编辑  收藏  举报