为什么fgetcsv()有时有时将“文件结尾”视为错误?

问题描述 投票:0回答:2

从手册在https://www.php.net/fgetcsv处:

fgetcsv()如果提供了无效的句柄,则返回NULL,否则,对于其他错误(包括文件末尾),则返回FALSE。

我是否将其解释为“文件结尾”被视为错误?!

我已经使用fgetcsv()很长时间了,从没碰到它在最后一行返回FALSE,但是最近,我遇到了一个CSV文件。非常奇怪,特别是考虑到我在使用fgetcsv()操作之前将换行符自动转换为“标准” Unix换行符的事实。

我不是正确地阅读/理解了手册还是什么?

php fgetcsv
2个回答
0
投票

仅表示出现错误或到达文件末尾时,它将返回FALSE。最后一个状态是否被视为“错误”,与我似乎无关。


0
投票

没有您误解了解释。如果在加载fgetcsv之前未通过fopen()打开csv文件,则fgetcsv()返回“ null”。如果出现其他错误以及到达文件末尾,则返回FALSE。因此,“ while”周期用于读取这样的文件:

$file = fopen("myFile.csv", "a");

while(($row = fgetcsv($file, 1000, ",") !== FALSE) {

   // now the $row variable is an array where line by line is stored from $file.
}
© www.soinside.com 2019 - 2024. All rights reserved.