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

发表日期:2021-07-01 08:55:41 | 来源: | | 浏览(755) 分类:文件系统函数

feof

(PHP 4, PHP 5, PHP 7, PHP 8)

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

说明

feof(resource $handle): bool

测试文件指针是否到了文件结束的位。

参数

handle

文件指针必须是有效的,必须指向由 fopen()fsockopen() 成功打开的文件(并还未由 fclose() 关闭)。

返回值

如果文件指针到了 EOF 或者出错时则返回 true,否则返回一个错误(包括 socket 超时),其它情况则返回 false

注释

警告

如果服务器没有关闭由 fsockopen() 所打开的连接,feof() 会一直等待直到超时。要解决这个问题可参见以下范例:

示例 #1 处理 feof() 的超时

<?php 
function safe_feof($fp, &$start = NULL) {
 $start = microtime(true);
 return feof($fp);
}
/* $fp 的赋值是由之前 fsockopen() 打开  */
$start = NULL;
$timeout = ini_get('default_socket_timeout');
while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout){
 /* Handle */
}
?>

警告

如果传递的文件指针无效可能会陷入无限循环中,因为 feof() 不会返回 true

示例 #2 使用无效文件指针的 feof() 例子

<?php 
// 如果文件不可读取或者不存在,fopen 函数返回 FALSE$file = @fopen("no_such_file", "r");
// 来自 fopen 的 FALSE 会发出一条警告信息并在这里陷入无限循环while (!feof($file)) {
}
fclose($file);
?>

集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。