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
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
关于session在PHP5的配置文件中的详细设置参数说明
Apr 20 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
PHP COOKIE及时生效的方法介绍
Feb 14 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
php中关于socket的系列函数总结
May 18 PHP
Laravel 中获取上一篇和下一篇数据
Jul 27 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 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
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
php时间不正确的解决方法
2008/04/09 PHP
php 删除cookie方法详解
2014/12/01 PHP
PHP反射学习入门示例
2019/06/14 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
Pycharm配置lua编译环境过程图解
2020/11/28 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
会计学生自我鉴定
2014/02/06 职场文书
小学生暑假家长评语
2014/04/17 职场文书
大学生学习计划书
2014/09/15 职场文书
法定授权委托证明书
2014/09/27 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书
nginx配置限速限流基于内置模块
2022/05/02 Servers
MySQL存储过程及语法详解
2022/08/05 MySQL