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 相关文章推荐
一个程序下载的管理程序(二)
Oct 09 PHP
用session做客户验证时的注意事项
Oct 09 PHP
PHP 输出缓存详解
Jun 20 PHP
php 静态变量的初始化
Nov 15 PHP
YII中assets的使用示例
Jul 31 PHP
PHP实现货币换算的方法
Nov 29 PHP
php实现无限级分类
Dec 24 PHP
php封装的mongodb操作类代码
Aug 06 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
laravel 框架配置404等异常页面
Jan 07 PHP
基于Laravel 5.2 regex验证的正确写法
Sep 29 PHP
laravel高级的Join语法详解以及使用Join多个条件
Oct 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 cookie与session会话基本用法实例分析
2019/11/18 PHP
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
jquery.validate使用攻略 第二部
2010/07/01 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
深入理解vue中的$set
2017/06/01 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
python使用folium库绘制地图点击框
2018/09/21 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
彩色的非洲教学反思
2014/02/18 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python