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


Posted in PHP onApril 07, 2008

<?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 相关文章推荐
php基础知识:类与对象(1)
Dec 13 PHP
php mssql 数据库分页SQL语句
Dec 16 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 PHP
PHP中构造函数和析构函数解析
Oct 10 PHP
使用php实现从身份证中提取生日
May 09 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
PHP receiveMail实现收邮件功能
Apr 25 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP中数组转换为SimpleXML教程
Jan 27 PHP
php xhprof使用实例详解
Apr 15 PHP
在php MYSQL中插入当前时间
Apr 06 #PHP
php读取30天之内的根据算法排序的代码
Apr 06 #PHP
PHP实现Socket服务器的代码
Apr 03 #PHP
mysql+php分页类(已测)
Mar 31 #PHP
PHP 数字左侧自动补0
Mar 31 #PHP
加强版phplib的DB类
Mar 31 #PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
Mar 30 #PHP
You might like
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
php抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
2018/01/08 jQuery
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
python Tensor和Array对比分析
2020/01/08 Python
python第三方库学习笔记
2020/02/07 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
什么是数组名
2012/05/10 面试题
外贸英语毕业生自荐信
2013/11/14 职场文书
自我评价格式
2014/01/06 职场文书
高中化学教学反思
2014/01/13 职场文书
洗发露广告词
2014/03/14 职场文书
安全生产月活动总结
2014/05/04 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
商标侵权律师函
2015/05/27 职场文书
单位证明范文
2015/06/18 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸
在python中读取和写入CSV文件详情
2022/06/28 Python