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 相关文章推荐
Banner程序
Oct 09 PHP
php 日期时间处理函数小结
Dec 18 PHP
php生成excel文件的简单方法
Feb 08 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
Sep 27 PHP
Yii配置文件用法详解
Dec 04 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
Sep 14 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 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使之能同时支持GIF和JPEG
2006/10/09 PHP
php实现批量压缩图片文件大小的脚本
2014/07/04 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
JS版网站风格切换实例代码
2008/10/06 Javascript
javascript 闭包疑问
2010/12/30 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
进一步探究Python中的正则表达式
2015/04/28 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
keras slice layer 层实现方式
2020/06/11 Python
汽车专业毕业生推荐信
2013/11/12 职场文书
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
自我鉴定书
2014/03/24 职场文书
消防标语大全
2014/06/07 职场文书
党支部工作总结2015
2015/04/01 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
2015年女职工工作总结
2015/05/15 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
详解Django的MVT设计模式
2021/04/29 Python
如何使用pdb进行Python调试
2021/06/30 Python
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript