PHP fgetcsv未获得正确的行数
我有一个相当大的csv文件(17GB),我正试图检查它是否正常。我写了一个小脚本,如下所示: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记录可以跨越多行。如果您在任何值中有回
#!/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'