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下HTTP Response中的Chunked编码实现方法
Nov 19 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 PHP
显示程序执行时间php函数代码
Aug 29 PHP
Codeigniter整合Tank Auth权限类库详解
Jun 12 PHP
ThinkPHP实现跨模块调用操作方法概述
Jun 20 PHP
php格式化金额函数分享
Feb 02 PHP
php计算税后工资的方法
Jul 28 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 PHP
thinkphp分页集成实例
Jul 24 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
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
VBScript版代码高亮
2006/06/26 Javascript
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
python实现RSA加密(解密)算法
2016/02/17 Python
python Django批量导入不重复数据
2016/03/25 Python
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
python分布式环境下的限流器的示例
2017/10/26 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
Django缓存系统实现过程解析
2019/08/02 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
自我鉴定范文200字
2013/10/02 职场文书
《桂林山水》教学反思
2014/02/08 职场文书
大学生活动总结模板
2014/07/02 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
幸福中国演讲稿
2014/09/12 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript
MySQL的索引你了解吗
2022/03/13 MySQL
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers