PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » 入门和基础知识 » PHP 保存远程图片到本地
本页主题: PHP 保存远程图片到本地 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

meiwang12363

该用户目前不在线
级别: 中级程序员
精华: 1
发帖: 1069
威望: 0 点
金钱: 0 PYMB
贡献值: 0 点
在线时间:8(小时)
注册时间:2007-04-26
最后登录:2007-09-04

PHP 保存远程图片到本地


〈?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(““,““);
  if($img):echo ’〈pre〉〈img src=“’.$img.’“〉〈/pre〉’;else:echo “false“;endif;
  ?〉
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);
  }
顶端 Posted: 2007-08-20 09:18 | [楼 主]
PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » 入门和基础知识

时:11-23 04:51 Copyright © 2006 phpwhy.com 权
ICP05060669

曳息 -