当前位置:首页 > PHP教程 > php图像处理 > 列表

php curl与fopen下载远程服务器图片实例

发布:smiling 来源: PHP粉丝网  添加日期:2014-01-06 11:34:05 浏览: 评论:0 

fopen函数,代码如下:

  1. <?php  
  2.  function get_file($url,$folder,$pic_name){  
  3.   set_time_limit(24*60*60); //限制最大的执行时间 
  4.   $destination_folder=$folder?$folder.'/':''//文件下载保存目录 
  5.   $newfname=$destination_folder.$pic_name;//文件PATH 
  6.   $file=fopen($url,'rb'); 
  7.    
  8.   if($file){    
  9.    $newf=fopen($newfname,'wb'); 
  10.    if($newf){     
  11.     while(!feof($file)){      
  12.      fwrite($newf,fread($file,1024*8),1024*8); 
  13.     } 
  14.    } 
  15.    if($file){     
  16.     fclose($file); 
  17.    } 
  18.    if($newf){     
  19.     fclose($newf); 
  20.    } 
  21.   }   
  22.  }  
  23.  get_file("/img/baidu_logo.gif","file","baidu.jpg"); 
  24. ?> 

php curl函数,代码如下:

  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

开启php curl函数库的步骤:

1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路径*/

2).把php5/libeay32.dll,ssleay32.dll复制到系统目录windows/下

3).重启apache

Tags: curl fopen 下载 图片实例

分享到: