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 相关文章推荐
ob_start(),ob_start('ob_gzhandler')使用
Dec 25 PHP
PHP实现MySQL更新记录的代码
Jun 07 PHP
PHP 一个随机字符串生成代码
May 26 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
Apache中php.ini的设置方法
Feb 28 PHP
php模拟post提交数据的方法
Feb 12 PHP
PHP用反撇号执行外部命令
Apr 14 PHP
php显示时间常用方法小结
Jun 05 PHP
PHP实现事件机制实例分析
Jun 26 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
Aug 14 PHP
php5与php7的区别点总结
Oct 11 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中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
2019/09/26 Javascript
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
python日期相关操作实例小结
2019/06/24 Python
Python PO设计模式的具体使用
2019/08/16 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
大学活动策划书范文
2014/01/10 职场文书
学生打架检讨书
2014/02/14 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
java项目构建Gradle的使用教程
2022/03/24 Java/Android