如何正确将文件读取为 EOF

How to correctly read file to EOF

提问人:sykatch 提问时间:3/13/2016 更新时间:3/13/2016 访问量:2593

问:

我有一个读取文本文件中注释的函数。注释可以持续到行尾,如果没有行尾,则持续到文件末尾。我的问题是我无法找到如何测试它是否到达文件末尾。起初我有这个:

while($char != "\n" && $char != false){
    $char = fgetc($inputFile);
}

如果评论中有,它会结束我不想的循环。然后我试了一下:0

while($char != "\n" && !feof($inputFile)){ 
    $char = fgetc($inputFile);
}

这打乱了整个程序。我试图在谷歌上搜索一些东西,但这就是我所找到的。feof!= false

PHP 的 EOF

评论


答:

0赞 Bart Friederichs 3/13/2016 #1

使用 !== 检查:FALSE

while($char != "\n" && $char !== FALSE){
    $char = fgetc($inputFile);
}

评论

0赞 sykatch 3/13/2016
是的,我也试过了,但我的程序在它之后开始循环。我不知道为什么,因为它工作正常,只有在角色方面才会崩溃。!==!=0
1赞 sykatch 3/13/2016
我刚刚发现错误在脚本的其他地方,现在工作正常,谢谢。!==
2赞 Shashank Shah 3/13/2016 #2

相反,您可以读取您的文件,直到它到达行尾!

您可以尝试 feof 函数来检查文件的末尾。

//Output a line of the file until the end is reached
while(!feof($file) {
    echo fgets($file) . "<br />";
}
fclose($file);

对于 fgets 函数,如果您不指定长度,那么它将继续从流中读取,直到它到达行尾。