加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-05-30 13:37:03 所属栏目:PHP教程 来源:
导读:在php中我们经常使用写一些简单的采集功能,这样可以自动把远程服务器的图片或资源直接采集保存到本地服务器中,下面我来给大家详细介绍远程图片并把它保存到本地几种方法.例1,代码如下:/* *功能:php多种方式完美实现

在php中我们经常使用写一些简单的采集功能,这样可以自动把远程服务器的图片或资源直接采集保存到本地服务器中,下面我来给大家详细介绍远程图片并把它保存到本地几种方法.

例1,代码如下:

/* 

*功能:php多种方式完美实现下载远程图片保存到本地 

*参数:文件url,保存文件名称,使用的下载方式 

*当保存文件名称为空时则使用远程文件原来的名称 

*/ 

function getImage($url,$filename='',$type=0){ 

//开源代码Cuoxin.com 

    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.Cuoxin.com",""); 

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

?> 

dedecms中的,代码如下:

if(!emptyempty($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.Cuoxin.com/static/image/common/logo.png',''); 

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

?> 

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!