CSV文件行计数在PHP中不起作用

时间:2016-12-25 21:33:23

标签: php file csv count

我的网页需要计算CSV文件中的行数,但以下代码无效:

$linecount = count(file("sample.csv"));
var_dump($linecount);

当我运行此代码时,代码返回数字1,但sample.csv中有8行。有谁知道为什么会这样,以及如何解决它?

1 个答案:

答案 0 :(得分:3)

如果在mac / linux中创建的sample.csv文件,您可能需要考虑将auto_detect_line_endings设置为ON

From the manual:

  

auto_detect_line_endings布尔

  打开时,PHP将检查fgets()和file()读取的数据,以查看它是否正在使用
  Unix,MS-Dos或Macintosh行结束约定。

另一个选项(如果您不想使用此选项)是读取文件并按所有换行选项(\r\n|\r|\n)拆分行:

$linecount = count(preg_split("/\r\n|\r|\n/", file_get_contents("sample.csv")));