php feof用来识别文件末尾字符的方法


Posted in PHP onAugust 01, 2010

EOF 是非常重要的概念,几乎每种主流编程语言都提供了相应的内置函数,来验证解析器是否到达了文件EOF。在PHP 中,此函数是feof ()。feof ()函数用来确定是否到达资源末尾。它在文件I/O 操作中经常使用。其形式为:
int feof(string resource)
实例如下:

<?php 
$fh = fopen("/home/www/data/users.txt", "rt"); 
while (!feof($fh)) echo fgets($fh); 
fclose($fh); 
?>

bool feof ( resource $handle ):Tests for end-of-file on a file pointer
这个php manual上面的原话。
为了方便,我以前都是这样使用的
<?php 
// if file can not be read or doesn't exist fopen function returns FALSE 
$file = @fopen("no_such_file", "r"); 
// FALSE from fopen will issue warning and result in infinite loop here 
while (!feof($file)) { 
} 
fclose($file); 
?>

确实,这样使用比较简单。但是,如果上面的变量$file不是一个合法的file pointer 或者已经被fclose关闭了的话。
那么在程序的第六行出,就会产生一个waring,并发生死循环。
为什么?
原因就是
Returns TRUE if the file pointer is at EOF or an error occurs (including socket timeout); otherwise returns FALSE.
所以,为了安全起见,最好在使用上面代码的时候 加个判断,is_resource 还是比较安全的。
PHP 相关文章推荐
PHP去除数组中重复的元素并按键名排序函数
Aug 18 PHP
php 短链接算法收集与分析
Dec 30 PHP
基于php伪静态的实现详细介绍
Apr 28 PHP
php利用新浪接口查询ip获取地理位置示例
Jan 20 PHP
zf框架的Filter过滤器使用示例
Mar 13 PHP
简单谈谈php中ob_flush和flush的区别
Nov 27 PHP
用php守护另一个php进程的例子
Feb 13 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 PHP
codeigniter实现get分页的方法
Jul 10 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 PHP
PHP中isset、empty的用法与区别示例详解
Nov 05 PHP
apache+php+mysql安装配置方法小结
Aug 01 #PHP
PHP 作用域解析运算符(::)
Jul 27 #PHP
PHP中的integer类型使用分析
Jul 27 #PHP
PHP中的float类型使用说明
Jul 27 #PHP
PHP中的string类型使用说明
Jul 27 #PHP
PHP中的array数组类型分析说明
Jul 27 #PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 #PHP
You might like
PHP中比较两个字符串找出第一个不同字符位置例子
2014/04/08 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
javascript常用代码段搜集
2014/12/04 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
vue.js购物车添加商品组件的方法
2019/09/17 Javascript
Vue插件之滑动验证码
2019/09/21 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
Python 变量类型及命名规则介绍
2013/06/08 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
python实现贪吃蛇游戏
2020/03/21 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
python对常见数据类型的遍历解析
2019/08/27 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
python list多级排序知识点总结
2019/10/23 Python
Python assert关键字原理及实例解析
2019/12/13 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
幼儿园园长岗位职责
2013/11/26 职场文书
农场厂长岗位职责
2013/12/28 职场文书
党支部公开承诺践诺书
2014/03/28 职场文书
运动会闭幕词
2015/01/28 职场文书
九年级数学教学反思
2016/02/17 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书