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+java实现自动新闻滚动窗口
Oct 09 PHP
PHP提取数据库内容中的图片地址并循环输出
Mar 21 PHP
PHP Zip解压 文件在线解压缩的函数代码
May 26 PHP
PHP中实现汉字转区位码应用源码实例解析
Jun 14 PHP
php 安全过滤函数代码
May 07 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
Jan 11 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHP设计模式之抽象工厂模式实例分析
Mar 25 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 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
yii框架源码分析之创建controller代码
2011/06/28 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
JavaScript触发器详解
2007/03/10 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
js转义字符介绍
2013/11/05 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
初步认识Python中的列表与位运算符
2015/10/12 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
python从PDF中提取数据的示例
2020/10/30 Python
EJB的基本架构
2016/09/22 面试题
数控专业推荐信范文
2013/12/02 职场文书
运动会通讯稿400字
2014/01/28 职场文书
法人授权委托书范本
2014/04/04 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
多表查询、事务、DCL
2021/04/05 MySQL
用python画城市轮播地图
2021/05/28 Python