• 技术文章 >php教程 >php手册

    PHP feof测试文件指针是否到了文件结束的位置

    2016-06-13 10:40:01原创371
    EOF 是非常重要的概念,几乎每种主流编程语言都提供了相应的内置函数,来验证解析器是否到达了文件EOF。在PHP 中,此函数是feof ()。feof ()函数用来确定是否到达资源末尾。它在文件I/O 操作中经常使用。其形式为:
    int feof(string resource)
    实例代码如下:
    $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上面的原话。
    为了方便,我以前都是这样使用的
    // if file can not be read or doesnt 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 还是比较安全的
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP中数组类型分析详解 下一篇:PHP 正则判断字符串编码
    PHP编程就业班

    相关文章推荐

    • 动态网页技术PHP程序字符串处理函数• PHP与MYSQL中UTF8编码的中文排序实例,• javascript unescape() escape() 字符编码解码函数• 探秘PHP 5的对象重载技术(1)• 如何配置Eclipse php xdebug(附代码)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网