您的位置:首页 > 编程语言 > PHP开发

PHP实现远程下载文件到本地

2015-12-25 16:10 821 查看
1.

/*

*功能: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;

}

2.

<?php

//

// Function: 获取远程图片并把它保存到本地

//

//

//   确定您有把文件写入本地服务器的权限

// 

//

// 变量说明:

// $url 是远程图片的完整URL地址,不能为空。

// $filename 是可选变量: 如果为空,本地文件名将基于时间和日期

// 自动生成.

function GrabImage($url,$filename="") {

   if($url==""):return false;endif;

   if($filename=="") {

     $ext=strrchr($url,".");

     if($ext!=".gif" && $ext!=".jpg"):return false;endif;

     $filename=date("dMYHis").$ext;

   }

   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;

}

$img=GrabImage("http://www.php100.com","");

if($img):echo '<pre><img src="'.$img.'"></pre>';else:echo "false";endif;  

?>

3.dedecms

if(!empty($saveremoteimg))

         {

                 $body = stripslashes($body);

                 $img_array = array();

                
preg_match_all("/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png))/isU",$body,$img_array);

                 $img_array = array_unique($img_array[2]);

                 set_time_limit(0);

                 $imgUrl = $img_dir."/".strftime("%Y%m%d",time());

                 $imgPath = $base_dir.$imgUrl;

                 $milliSecond = strftime("%H%M%S",time());

                 if(!is_dir($imgPath)) @mkdir($imgPath,0777);

                
foreach($img_array as $key =>$value)

                 {

                         $value = trim($value);

                         $get_file = @file_get_contents($value);

                         $rndFileName = $imgPath."/".$milliSecond.$key.".".substr($value,-3,3);

                         $fileurl = $imgUrl."/".$milliSecond.$key.".".substr($value,-3,3);

                         if($get_file)

                         {

                                 $fp = @fopen($rndFileName,"w");

                                 @fwrite($fp,$get_file);

                                 @fclose($fp);

                         }

                         $body = ereg_replace($value,$fileurl,$body);

                 }

                 $body = addslashes($body);

         }

?>

4.

<?php

//

// Function: 获取远程图片并把它保存到本地

//

//

// 确定您有把文件写入本地服务器的权限

//

//

// 变量说明:

// $url 是远程图片的完整URL地址,不能为空。

// $filename 是可选变量: 如果为空,本地文件名将基于时间和日期// 自动生成.

function GrabImage($url,$filename='') {

if($url==''):return false;endif;

if($filename=='') {

$ext=strrchr($url,'.');

if($ext!='.gif' && $ext!='.jpg'):return false;endif;$filename=date('dMYHis').$ext;

}

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;

}

$img=GrabImage('http://www.ccc.cc/static/image/common/logo.png','');

if($img){echo '<pre><img src='.$img.'></pre>';}else{echo 'false';}

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: