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制作静态网站的模板框架
Oct 09 PHP
php4的彩蛋
Oct 09 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
Jan 16 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
Jan 31 PHP
PHP中让curl支持sock5的代码实例
Jan 21 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
php根据某字段对多维数组进行排序的方法
Mar 07 PHP
PHP.vs.JAVA
Apr 29 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 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
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
php 多文件上传的实现实例
2016/10/23 PHP
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
vue如何将v-for中的表格导出来
2018/05/07 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
安全标准化实施方案
2014/02/20 职场文书
我的理想演讲稿
2014/04/30 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
运动会表扬稿范文
2015/05/05 职场文书
无故旷工检讨书
2015/08/15 职场文书