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

yipeiwu_com6年前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("/zb_users/upload/202003/g422ezcvc0a.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);
        }

相关文章

php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创

本文实例讲述了php使用strpos判断字符串中数字类型子字符串出错的解决方法。分享给大家供大家参考,具体如下: 一、问题: 最近的开发中在程序代码里有一个随机数是否在给定字符串里的判断...

.htaccess文件保护实例讲解

比如说,想要保护admin文件夹,经过以下两个步骤: 步骤一、可以用记事本新建文件.htaccess,输入以下内容: AuthType BasicAuth UserFile D:/App...

PHP直接修改表内容DataGrid功能实现代码

PHP直接修改表内容DataGrid功能实现代码

由于需要连接Oracle所以从二次开发和页面样式来说个人觉得phpMyDataGrid还是比较好上手。 1. 创建测试数据库和表 create database `guru`;...

php代码调试利器firephp安装与使用方法分析

php代码调试利器firephp安装与使用方法分析

本文实例分析了php代码调试利器firephp安装与使用方法。分享给大家供大家参考,具体如下: firephp简述 如果你曾经写过js代码的话,那么你对如下的代码肯定不会陌生: co...

又一个php 分页类实现代码

复制代码 代码如下:<?php function genpage(&$sql,$page_size=10) { global $pages,$sums,$eachpage,$pag...