用php获取远程图片并把它保存到本地的代码

  <?php

  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://news.bbc.co.uk/images/_1978837_detector_ap100.jpg","");

  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);

  }