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中的 == 运算符进行字符串比较
Nov 26 PHP
PHP测试程序运行时间的类
Feb 05 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
浅谈PHP强制类型转换,慎用!
Jun 06 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
CodeIgniter模板引擎使用实例
Jul 15 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
Jul 13 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
Laravel validate error处理,ajax,json示例
Oct 25 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
用文本作数据处理
2006/10/09 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
extjs两个tbar问题探讨
2013/08/08 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
Python常用正则表达式符号浅析
2014/08/13 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
Django实现表单验证
2018/09/08 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
html5 offlline 缓存使用示例
2013/06/24 HTML / CSS
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
英国医生在线预约:Top Doctors
2019/10/30 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
CSMA/CD介质访问控制协议
2015/11/17 面试题
linux系统都有哪些运行级别
2012/04/15 面试题
祖国在我心中演讲稿300字
2014/05/04 职场文书
计算机系本科生求职信
2014/05/31 职场文书
大学生创业计划书
2014/08/14 职场文书
销售督导岗位职责
2015/04/10 职场文书
详解redis在微服务领域的贡献
2021/10/16 Redis
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android