服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - PHP教程 - 用php获取远程图片并把它保存到本地的代码

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

2019-10-27 11:57php教程网 PHP教程

Function: 获取远程图片并把它保存到本地 确定您有把文件写入本地服务器的权限变量说明: $url 是远程图片的完整URL地址,不能为空。 $filename 是可选变量: 如果为空,本地文件名将基于时间和日期 自动生成.

  1. <?php  
  2. function GrabImage($url,$filename="") {  
  3.   if($url==""):return false;endif;  
  4.  
  5.   if($filename=="") {  
  6.     $ext=strrchr($url,".");  
  7.     if($ext!=".gif" && $ext!=".jpg"):return false;endif;  
  8.     $filename=date("dMYHis").$ext;  
  9.   }  
  10.  
  11.   ob_start();  
  12.   readfile($url);  
  13.   $img = ob_get_contents();  
  14.   ob_end_clean();  
  15.   $size = strlen($img);  
  16.  
  17.   $fp2=@fopen($filename"a");  
  18.   fwrite($fp2,$img);  
  19.   fclose($fp2);  
  20.  
  21.   return $filename;  
  22. }  
  23.  
  24.  
  25. $img=GrabImage("http://news.bbc.co.uk/images/_1978837_detector_ap100.jpg","");  
  26. if($img):echo '<pre><img src="'.$img.'"></pre>';else:echo "false";endif;     
  27.  
  28.    
  29.  
  30.  
  31. ?>  

dedecms中的:

  1. if(!empty($saveremoteimg))  
  2.  {  
  3.          $body = stripslashes($body);  
  4.          $img_array = array();  
  5.          preg_match_all("/(src|SRC)=[\"|'| ]{0,}(http:\/\/(.*)\.(gif|jpg|jpeg|bmp|png))/isU",$body,$img_array);  
  6.          $img_array = array_unique($img_array[2]);  
  7.          set_time_limit(0);  
  8.          $imgUrl = $img_dir."/".strftime("%Y%m%d",time());  
  9.          $imgPath = $base_dir.$imgUrl;  
  10.          $milliSecond = strftime("%H%M%S",time());  
  11.          if(!is_dir($imgPath)) @mkdir($imgPath,0777);  
  12.          foreach($img_array as $key =>$value)  
  13.          {  
  14.                  $value = trim($value);  
  15.                  $get_file = @file_get_contents($value);  
  16.                  $rndFileName = $imgPath."/".$milliSecond.$key.".".substr($value,-3,3);  
  17.                  $fileurl = $imgUrl."/".$milliSecond.$key.".".substr($value,-3,3);  
  18.                  if($get_file)  
  19.                  {  
  20.                          $fp = @fopen($rndFileName,"w");  
  21.                          @fwrite($fp,$get_file);  
  22.                          @fclose($fp);  
  23.                  }  
  24.                  $body = ereg_replace($value,$fileurl,$body);  
  25.          }  
  26.          $body = addslashes($body);  
  27.  }  

延伸 · 阅读

精彩推荐