PHP 抓取网页图片并且另存为的实现代码


Posted in PHP onMarch 24, 2010

下面是源代码,及其相关解释

<?php 
//URL是远程的完整图片地址,不能为空, $filename 是另存为的图片名字 
//默认把图片放在以此脚本相同的目录里 
function GrabImage($url, $filename=""){ 
//$url 为空则返回 false; 
if($url == ""){return false;} 
$ext = strrchr($url, ".");//得到图片的扩展名 
if($ext != ".gif" && $ext != ".jpg" && $ext != ".bmp"){echo "格式不支持!";return false;} 
if($filename == ""){$filename = time()."$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; 
} 
//测试 
GrabImage("https://3water.com/images/logo.gif", "as.gif"); 
?>

ob_start : 打开输出缓冲
This function will turn output buffering on. While output buffering is active no output is sent from the script (other than headers), instead the output is stored in an internal buffer. (输出是在内部缓冲储存)
//
readfile : 读入一个文件并写入到输出缓冲
返回从文件中读入的字节数。如果出错返回 FALSE 并且除非是以 @readfile() 形式调用,否则会显示错误信息。
//

ob_get_contents : Return the contents of the output buffer(返回输出缓冲的内容)
This will return the contents of the output buffer without clearing it or FALSE, if output buffering isn't active. (如果输出缓冲没有活动(打开),则返回 FALSE)
//
ob_end_clean() : Clean (erase) the output buffer and turn off output buffering(清除输出缓冲)
This function discards(丢弃) the contents of the topmost output buffer and turns off this output buffering.(丢弃并且关掉) If you want to further process the buffer's contents you have to call ob_get_contents() before ob_end_clean() as the buffer contents are discarded when ob_end_clean() is called. (如果要用缓冲内容,则在清理输出缓冲之前要先调用 ob_get_contents())The function returns TRUE when it successfully discarded one buffer and FALSE otherwise. Reasons for failure are first that you called the function without an active buffer or that for some reason a buffer could not be deleted (possible for special buffer).

PHP 相关文章推荐
php初学者写及时补给skype用户充话费的小程序
Nov 02 PHP
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
PHP图片自动裁切应付不同尺寸的显示
Oct 16 PHP
PHP中curl_setopt函数用法实例分析
Apr 16 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
对PHP依赖注入的理解实例分析
Oct 09 PHP
php魔术方法功能与用法实例分析
Oct 19 PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 PHP
PHP的反射机制实例详解
Mar 29 PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 PHP
php通过header发送自定义数据方法
Jan 18 PHP
php日志函数error_log用法实例分析
Sep 23 PHP
Cakephp 执行主要流程
Mar 24 #PHP
php中的观察者模式
Mar 24 #PHP
PHP 获取远程文件内容的函数代码
Mar 24 #PHP
PHP中基本符号及使用方法
Mar 23 #PHP
PHP技术开发技巧分享
Mar 23 #PHP
PHP初学者常见问题集合 修正版(21问答)
Mar 23 #PHP
PHP5 字符串处理函数大全
Mar 23 #PHP
You might like
第八节 访问方式 [8]
2006/10/09 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
win平台安装配置Nginx+php+mysql 环境
2016/01/12 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
常用jQuery选择器总结
2014/07/11 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
node跨域请求方法小结
2017/08/25 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
vue+layui实现select动态加载后台数据的例子
2019/09/20 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
python实现八大排序算法(2)
2017/09/14 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
Python 移动光标位置的方法
2019/01/20 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
2020/06/30 Python
毕业研究生的自我鉴定
2013/11/30 职场文书
座谈会主持词
2014/03/20 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
大学生赌博检讨书
2014/09/22 职场文书
个人廉政承诺书
2015/04/28 职场文书
消防安全月活动总结
2015/05/08 职场文书
党员转正大会主持词
2015/07/02 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书