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中使用explode查找某个字符是否存在的方法
Jul 12 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
利用php实现禁用IE和火狐的缓存问题
Dec 03 PHP
php上传文件,创建递归目录的实例代码
Oct 18 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
CodeIgniter CLI模式简介
Jun 17 PHP
php简单获取文件扩展名的方法
Mar 24 PHP
PHP中in_array函数使用的问题与解决办法
Sep 11 PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 PHP
laravel 5.3 单用户登录简单实现方法
Oct 14 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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程序--记数器
2006/10/09 PHP
PHP Directory 函数的详解
2013/03/07 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
10个实用的脚本代码工具
2010/05/04 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
深入理解Django中内置的用户认证
2017/10/06 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
Python networkx包的实现
2020/02/14 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
Python request post上传文件常见要点
2020/11/20 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
工作自我评价范文
2015/03/05 职场文书
边城读书笔记
2015/06/29 职场文书
运动会闭幕式主持词
2015/07/01 职场文书
详解python字符串驻留技术
2021/05/21 Python
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python
Python可视化神器pyecharts之绘制地理图表练习
2022/07/07 Python