Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.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
PHP fgetcsv未获得正确的行数_Php_Csv_Fgets - Fatal编程技术网

PHP fgetcsv未获得正确的行数

PHP fgetcsv未获得正确的行数,php,csv,fgets,Php,Csv,Fgets,我有一个相当大的csv文件(17GB),我正试图检查它是否正常。我写了一个小脚本,如下所示: #!/usr/bin/php <?php $f = fopen($argv[1],'r'); $i=0; while (!feof($f)) { $row = fgetcsv($f); $i++; } print $i."\n"; ?> 因此,它不应该有任何未经修饰的新词或类似的东西。有人知道哪里可能出错吗?CSV记录可以跨越多行。如果您在任何值中有回

我有一个相当大的csv文件(17GB),我正试图检查它是否正常。我写了一个小脚本,如下所示:

#!/usr/bin/php
<?php

$f = fopen($argv[1],'r');

$i=0;
while (!feof($f)) {
        $row = fgetcsv($f);
        $i++;
}
print $i."\n";

?>

因此,它不应该有任何未经修饰的新词或类似的东西。有人知道哪里可能出错吗?

CSV记录可以跨越多行。如果您在任何值中有回车符,则文件中将有多个(2个或更多)物理行(由
wc
计算),但它们将使用
fgetcsv
作为一个CSV记录读取


此外,您不需要检查
feof($f)
,因为
fgetcsv
将在文件末尾返回FALSE。

您是否尝试过将文件中与
^“
”$
匹配的行进行灰色化,因为这将指示未替换的换行。我不确定\\是否是避免换行的正确方法。为此,我指出了找到问题的方法,这正是Aleks G所描述的
INTO OUTFILE '/tmp/file.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n'