php - PHP feof($file) 在空文件上返回 false
问题描述
有php代码:
#!/usr/bin/php
<?php
if ($file = fopen("file.txt", "r")) {
while(!feof($file)) {
$line = fgets($file);
echo "----" , $line , "----";
}
fclose($file);
}
?>
和空文件“file.txt”
[root@localhost]# ls -l file.txt
-rw-r--r-- 1 root root 0 Апр 21 10:14 file.txt
[root@localhost]# file file.txt
file.txt: empty
为什么我得到?feof 在第一个循环中应该是真的还是我错了?
[root@localhost ]# php -f test2.php
--------
[root@localhost ]#
解决方案
fgets()
是的,那是因为文件已经是空的,但是 PHP 在执行该方法之前并不知道它。
为了避免 PHP 读取第一个空行,您必须检查fgets
is not false
. 为此,应该执行以下操作:
if ($file = fopen("file.txt", "r")) {
while (($line = fgets($file)) !== false) {
echo "----" , $line , "----";
}
fclose($file);
}
推荐阅读
- javascript - Thymeleaf 将对象传递给 javascript 并访问它的属性:未定义
- android - Flutter中JSON字符串中的特殊符号或单引号或撇号
- android - Android如何使用BroadcastReceiver查找拨出电话已参加
- javascript - 在 Aurelia 中动态切换网站图标,最好使用绑定
- excel - VBA 与 & 的连接会导致问题,因为字符串也有 &
- javascript - IF 条件 (js)
- sql - SQL Server 游标每行更新非常慢,其中包含存储过程
- javascript - 如何捕捉快照(响应)并渲染它?
- pointers - 如何为指针参数分配地址
- php - 从 php mysql 查询中的变量获取表名