Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSV文件行计数在PHP中不起作用_Php_File_Csv_Count - Fatal编程技术网

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

CSV文件行计数在PHP中不起作用,php,file,csv,count,Php,File,Csv,Count,我有一个网页需要计算CSV文件中的行数,但以下代码不起作用: $linecount = count(file("sample.csv")); var_dump($linecount); 当我运行此代码时,代码返回数字1,但是sample.csv中有8行。是否有人知道为什么会发生这种情况以及如何修复它? < P>如果在MAC/Linux中创建的示例.CSV < /代码>文件,您可能需要考虑在< > < /P> > > > AutoMyTraceTyLyGyEnguts< /C> > >

我有一个网页需要计算CSV文件中的行数,但以下代码不起作用:

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

当我运行此代码时,代码返回数字1,但是
sample.csv
中有8行。是否有人知道为什么会发生这种情况以及如何修复它?

< P>如果在MAC/Linux中创建的<代码>示例.CSV < /代码>文件,您可能需要考虑在< <代码> > < /P> > > <代码> > AutoMyTraceTyLyGyEnguts< /C> > <代码> >

auto\u detect\u line\u endings
boolean
启用时,PHP将检查fgets()和file()读取的数据,以查看它是否正在使用
Unix、MS Dos或Macintosh行结束约定

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


调用
vardump(文件(“sample.csv”)
可能会提供一些见解。整个文件是否被读取到数组的第一项中?打印$linecount的输出是什么?@negacao谢谢,整个文件被读取到数组的第一项中。“当我运行此代码时,代码返回数字1”-你的意思是
int(1)
,对吗?你在哪个平台上运行这个?这个问题还不清楚,对未来的游客来说。@PhiladelphialRegionalWeather你能投票赞成这个答案吗?提前谢谢!为什么不使用
PHP_EOL
而不是
/\r\n\r\124;\n/
?@PedroLobito,主要是因为
PHP_EOL
是特定于平台的。如果您在windows上运行PHP,但在mac上创建了
sample.csv
,则该csv文件中的新行将是
\r
(这就是导致错误的原因)。
auto\u detect\u line\u endings
将“修复”此问题是的,
auto\u detect\u line\u endings
将解决此问题。
$linecount = count(preg_split("/\r\n|\r|\n/", file_get_contents("sample.csv")));