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

admin 阅读:84 2024-03-01

fopen函数,代码如下:

<?php  
 function get_file($url,$folder,$pic_name){  
  set_time_limit(24*60*60); //限制最大的执行时间 
  $destination_folder=$folder?$folder.'/':''; //文件下载保存目录 
  $newfname=$destination_folder.$pic_name;//文件PATH 
  $file=fopen($url,'rb'); 
   
  if($file){    
   $newf=fopen($newfname,'wb'); 
   if($newf){     
    while(!feof($file)){      
     fwrite($newf,fread($file,1024*8),1024*8); 
    } 
   } 
   if($file){     
    fclose($file); 
   } 
   if($newf){     
    fclose($newf); 
   } 
  }   
 }  
 get_file("/img/baidu_logo.gif","file","baidu.jpg"); 
?> 


php curl函数,代码如下:

/* 
*功能:php多种方式完美实现下载远程图片保存到本地 
*参数:文件url,保存文件名称,使用的下载方式 
*当保存文件名称为空时则使用远程文件原来的名称 
*/ 
function getImage($url,$filename='',$type=0){ 
    if($url==''){return false;} 
    if($filename==''){ 
        $ext=strrchr($url,'.'); 
        if($ext!='.gif' && $ext!='.jpg'){return false;} 
        $filename=time().$ext; 
    } 
    //文件保存路径  
    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($filename,'a'); 
    fwrite($fp2,$img); 
    fclose($fp2); 
    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

声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!