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

 更新时间:2008年04月07日 20:43:26   作者:  
Function: 获取远程图片并把它保存到本地 确定您有把文件写入本地服务器的权限变量说明: $url 是远程图片的完整URL地址,不能为空。 $filename 是可选变量: 如果为空,本地文件名将基于时间和日期 自动生成.
<?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);
        }

相关文章

  • php正则替换处理HTML页面的方法

    php正则替换处理HTML页面的方法

    这篇文章主要介绍了php正则替换处理HTML页面的方法,涉及php针对html页面常见元素的匹配技巧,需要的朋友可以参考下
    2015-06-06
  • PHP 如何获取二维数组中某个key的集合

    PHP 如何获取二维数组中某个key的集合

    PHP 获取二维数组中某个key的集合
    2014-06-06
  • PHP快速排序算法实例分析

    PHP快速排序算法实例分析

    这篇文章主要介绍了PHP快速排序算法,结合实例形式分析了快速排序的原理、步骤及相关php定义与使用操作技巧,需要的朋友可以参考下
    2018-07-07
  • php中ob_get_length缓冲与获取缓冲长度实例

    php中ob_get_length缓冲与获取缓冲长度实例

    这篇文章主要介绍了php中ob_get_length缓冲与获取缓冲长度的方法,实例分析了缓冲输出的用法与相关技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • php,ajax实现分页

    php,ajax实现分页

    之前用php写好了个分页程序,今天试着结合ajax实现这个功能,成功了。哈哈,代码不难写,但写好之后测试发现出了,然后又调试了好段时间才正确。深感开发人员的时间大部分都是花在调试代码上的。
    2008-03-03
  • PHP实现采集抓取淘宝网单个商品信息

    PHP实现采集抓取淘宝网单个商品信息

    这篇文章主要介绍了PHP实现采集抓取淘宝网单个商品信息,本文是一种实现思路,使用file_get_contents函数实现,并给出了采集正则,需要的朋友可以参考下
    2015-01-01
  • phpword插件导出word文件时中文乱码问题处理方案

    phpword插件导出word文件时中文乱码问题处理方案

    PHPWord是一个可以把相关文件生成word文档的插件了,但由于是老外开发的对于gbk支持不好,所以我们在导出带有中文的word时会出现乱码问题,下面本文就PHPWord中文乱码问题介绍一些解决方法。
    2014-08-08
  • php中常用的预定义变量小结

    php中常用的预定义变量小结

    常用的php预定义变量,需要的朋友可以收藏下,方便以后使用
    2012-05-05
  • PHP实现机器学习之朴素贝叶斯算法详解

    PHP实现机器学习之朴素贝叶斯算法详解

    这篇文章主要介绍了PHP实现机器学习之朴素贝叶斯算法,结合实例形式详细分析了朴素贝叶斯算法的概念、原理及php实现技巧,需要的朋友可以参考下
    2017-12-12
  • PHP与Web页面交互操作实例分析

    PHP与Web页面交互操作实例分析

    这篇文章主要介绍了PHP与Web页面交互操作,结合实例形式分析了PHP与Web页面交互表单数据提交、特殊字符处理相关操作技巧,需要的朋友可以参考下
    2020-06-06

最新评论