feof() 是 PHP 中用于检测文件指针是否到达文件末尾的函数,以下是详细说明:
feof() 函数详解
功能
作用:检查文件指针是否已到达文件末尾(End Of File)。
返回值:
true:指针已到达末尾或文件打开失败。false:指针未到达末尾,可继续读取。
参数
$handle:通过fopen()打开的文件指针资源。
典型应用场景
在循环中逐行/逐块读取文件时,用于判断是否终止循环。
注意事项
延迟生效
必须至少尝试一次读取(如fgets())后,feof()才能正确检测到文件末尾。直接调用可能返回错误结果。
while (!feof($fopen)) {
$line = fgets($fopen); // 先读取,再检测
echo $line;
}与
fgets()的配合fgets()读取失败时(如到达末尾)返回false,但需通过feof()区分是“正常结束”还是“读取错误”。错误处理
若文件打开失败(如不存在),feof()会直接返回true,因此需先验证fopen()是否成功:
$fopen = fopen('file.txt', 'r');
if (!$fopen) die("文件打开失败");示例修正(完整代码)
$fopen = fopen('common.php', 'rb');
if (!$fopen) die("无法打开文件");
while (true) {
$line = fgets($fopen);
if ($line === false) {
if (feof($fopen)) break; // 正常结束
else die("读取错误"); // 异常错误
}
echo $line;
}
fclose($fopen);关键点总结
feof()是文件读取循环的终止条件判断工具。需结合
fgets()等读取函数使用,避免逻辑错误。始终检查文件是否成功打开,确保资源有效。