用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 相关文章推荐
深入了解php4(1)--回到未来
Oct 09 PHP
php下将多个数组合并成一个数组的方法与实例代码
Feb 03 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
Jun 23 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
yii中widget的用法
Dec 03 PHP
PHP使用mysqldump命令导出数据库
Apr 14 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 PHP
Laravel框架文件上传功能实现方法示例
Apr 16 PHP
CI框架简单分页类用法示例
Jun 06 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 n个不重复的随机数生成代码
2009/06/23 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
javascript div 弹出可拖动窗口
2009/02/26 Javascript
基于jquery的滚动新闻列表
2010/06/19 Javascript
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
[05:08]第一届“网鱼杯”DOTA2比赛精彩集锦
2014/09/05 DOTA
Python动态生成多维数组的方法示例
2018/08/09 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
python使用PyQt5的简单方法
2019/02/27 Python
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
UNIX文件系统常用命令
2012/05/25 面试题
水利学院求职自荐书
2014/02/01 职场文书