PHP获取远程图片并保存到本地的方法


Posted in PHP onMay 12, 2015

本文实例讲述了PHP获取远程图片并保存到本地的方法。分享给大家供大家参考。具体实现方法如下:

<?php
function GrabImage($url, $filename = "") {
 if ($url == ""):return false;
 endif;
 //如果$url地址为空,直接退出
 if ($filename == "") {
 //如果没有指定新的文件名
 $ext = strrchr($url, ".");
 //得到$url的图片格式
 if ($ext != ".gif" && $ext != ".jpg"):return false;
 endif;
 //如果图片格式不为.gif或者.jpg,直接退出
 $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("http://imgsrc.baidu.com/baike/abpic/item/6648d73db0edd1e89f3d62f7.jpg", "");
if ($img):echo '<pre><img src="' . $img . '"></pre>';
//如果返回值为真,这显示已经采集到服务器上的图片
else:echo "false";
endif;
//否则,输出采集失败
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
用PHP连mysql和oracle数据库性能比较
Oct 09 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
Jul 18 PHP
PHP版网站缓存加快打开速度的方法分享
Jun 03 PHP
探讨php中header的用法详解
Jun 07 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
Jun 08 PHP
解析Ubuntu下crontab命令的用法
Jun 24 PHP
实现获取http内容的php函数分享
Feb 16 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
Dec 18 PHP
PHP实现添加购物车功能
Mar 06 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 PHP
php模式设计之观察者模式应用实例分析
Sep 25 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 #PHP
php解析xml方法实例详解
May 12 #PHP
php实现统计网站在线人数的方法
May 12 #PHP
PHP输出一个等腰三角形的方法
May 12 #PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 #PHP
PHP获取数组最大值下标的方法
May 12 #PHP
PHP Streams(流)详细介绍及使用
May 12 #PHP
You might like
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
PHP中的CMS的涵义
2007/03/11 PHP
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
浅析php工厂模式
2014/11/25 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
JS左右无缝轮播功能完整实例
2019/05/16 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
python使用心得之获得github代码库列表
2014/06/25 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
python Celery定时任务的示例
2018/03/13 Python
Django开发中的日志输出的方法
2018/07/02 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
娱乐节目策划方案
2014/06/10 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
Mysql 设置boolean类型的操作
2021/06/04 MySQL
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL
Python创建SQL数据库流程逐步讲解
2022/09/23 Python