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 相关文章推荐
推荐一篇入门级的Class文章
Mar 19 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
PHP反转字符串函数strrev()函数的用法
Feb 04 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
基于empty函数的判断详解
Jun 17 PHP
php中把美国时间转为北京时间的自定义函数分享
Jul 28 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 PHP
PHP实现考试倒计时功能代码
Apr 16 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
php注入实例
2006/10/09 PHP
php a simple smtp class
2007/11/26 PHP
10条PHP编程习惯助你找工作
2008/09/29 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
用htc组件制作windows选项卡
2007/01/13 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
详解vue-cli@2.x项目迁移日志
2019/06/06 Javascript
[00:10]神之谴戒
2019/03/06 DOTA
python数据结构之二叉树的建立实例
2014/04/29 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
对Python实现累加函数的方法详解
2019/01/23 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
企事业单位求职者的自我评价
2013/12/28 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
保密工作承诺书
2014/08/29 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书