用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转成EXE文件
Oct 09 PHP
php at(@)符号的用法简介
Jul 11 PHP
PHP sprintf()函数用例解析
May 18 PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 PHP
spl_autoload_register与autoload的区别详解
Jun 03 PHP
PHP常用的缓存技术汇总
May 05 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
PHP用户注册邮件激活账户的实现代码
May 31 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 PHP
thinkPHP事务操作简单案例分析
Oct 17 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中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
Javascript模块模式分析
2008/05/16 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
ES6 Generator函数的应用实例分析
2019/06/26 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
详解Python中for循环的使用方法
2015/05/14 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
python中验证码连通域分割的方法详解
2018/06/04 Python
python DataFrame 取差集实例
2019/01/30 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
银行简历自我评价
2014/02/11 职场文书
禁止高声喧哗的标语
2014/06/11 职场文书
工程部主管岗位职责
2015/02/12 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
Mysql基础知识点汇总
2021/05/26 MySQL
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers