php 远程图片保存到本地的函数类


Posted in PHP onDecember 08, 2008

<?php
//
// Function: 获取远程图片并把它保存到本地
//
//
// 确定您有把文件写入本地服务器的权限
//
//
// 变量说明:
// $url 是远程图片的完整URL地址,不能为空。
// $filename 是可选变量: 如果为空,本地文件名将基于时间和日期
// 自动生成.
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("/upload/20081208002838680.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新手上路(三)
Oct 09 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
php中设置多级目录session的问题
Aug 08 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
PHP操作MySQL事务实例
Nov 05 PHP
php批量添加数据与批量更新数据的实现方法
Dec 16 PHP
PHP中字符与字节的区别及字符串与字节转换示例
Oct 15 PHP
php json中文编码为null的解决办法
Dec 14 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
Apr 05 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
php的RSA加密解密算法原理与用法分析
Jan 23 PHP
PHP 出现乱码和Sessions验证问题的解决方法!
Dec 06 #PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 #PHP
php 远程关机操作的代码
Dec 05 #PHP
php 清除网页病毒的方法
Dec 05 #PHP
php读取msn上的用户信息类
Dec 05 #PHP
php获取网页内容方法总结
Dec 04 #PHP
php smarty的预保留变量总结
Dec 04 #PHP
You might like
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
详解node中创建服务进程
2017/05/09 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
Python访问纯真IP数据库脚本分享
2015/06/29 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
物业管理专业个人的自我评价
2013/11/19 职场文书
毕业生的自我评价范文
2013/12/31 职场文书
卫生安全检查制度
2014/02/04 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
先进党员事迹材料
2014/12/24 职场文书
课外活动实习计划
2015/01/19 职场文书
办公室岗位职责
2015/02/04 职场文书
小程序wx.getUserProfile接口的具体使用
2021/06/02 Javascript