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 08 PHP
php 文件缓存函数
Oct 08 PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
Jul 20 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
两种设置php载入页面时编码的方法
Jul 29 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
Dec 18 PHP
PHP结合Jquery和ajax实现瀑布流特效
Jan 07 PHP
PHP获取访问页面HTTP状态码的实现代码
Nov 03 PHP
PHP缩略图生成和图片水印制作
Jan 07 PHP
php实现微信企业转账功能
Oct 02 PHP
PHP实现基于状态的责任链审批模式详解
May 31 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
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
jQuery 表格插件整理
2010/04/27 Javascript
jQuery autocomplate 自扩展插件、自动完成示例代码
2011/03/28 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
python共享引用(多个变量引用)示例代码
2013/12/04 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
Python pymongo模块常用操作分析
2018/09/01 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
捐书寄语赠言
2014/01/18 职场文书
推荐信模板
2014/05/09 职场文书
部门经理迟到检讨书
2015/02/16 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
2015年国培研修感言
2015/08/01 职场文书
员工聘用合同范本
2015/09/21 职场文书
创业计划书之书店
2019/09/10 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server
这样写python注释让代码更加的优雅
2021/06/02 Python