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 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
实现 win2003 下 mysql 数据库每天自动备份
Dec 06 PHP
php简单封装了一些常用JS操作
Feb 25 PHP
php与paypal整合方法
Nov 28 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
Apr 24 PHP
PHP Session机制简介及用法
Aug 19 PHP
Mac环境下php操作mysql数据库的方法分享
May 11 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 PHP
php str_getcsv把字符串解析为数组的实现方法
Apr 05 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 PHP
PHP中str_split()函数的用法讲解
Apr 11 PHP
PHP判断函数是否被定义的方法
Jun 21 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
Apache中php.ini的设置方法
2013/02/28 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
再谈javascript原型继承
2014/11/10 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
Python开发编码规范
2006/09/08 Python
python爬取网站数据保存使用的方法
2013/11/20 Python
Python学习笔记之常用函数及说明
2014/05/23 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
Python 文件数据读写的具体实现
2020/01/24 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
百思买美国官网:Best Buy
2016/07/28 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
如何掌握自荐信格式呢
2013/11/19 职场文书
药学职务聘任书
2014/03/29 职场文书
活动总结范文
2014/08/30 职场文书
四风对照检查材料范文
2014/09/27 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
模范教师事迹材料
2014/12/16 职场文书
领导欢迎词范文
2015/01/26 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书