我想计算一个非常大的文本文件中所有逗号的出现(它有逗号分隔的数据)。大小是28mb。我想加载文本文件并做这样的事情:
substr_count($text, ',');
好主意?它会起作用吗?
总体任务是找出它有多少行数据。当我计算逗号的数量时,我将把它除以将给出行数的列数。如果有更好的方法,请告诉我!
全部谢谢
以下有效,但建议有效吗?
$lines = file('C:\wamp\CE.txt');
$number = 0;
foreach($lines as $line){
$number = $number + substr_count($line, ',');
}
echo $number;
答案 0 :(得分:4)
CSV是这样的:
行 - >行
逗号 - >列
所以你在行上弄错了。如果你想计算行只是迭代文件换新行。
$file = "youfile.txt";
$lines = count(file($file));
echo "There are ".$lines." lines in ".$file;
可以作为一个例子......
答案 1 :(得分:1)
如果您的记录以新行分隔,则可以执行以下操作以获取行数:
$file = "input.csv";
$rows = count(file($file));
答案 2 :(得分:0)
好主意?它会起作用吗?
你试过吗?这应该说明了很多。
基本上,由于substr_count
是一个完全符合你想要的内在函数,它很可能会提供最佳性能。
如果您发现性能太差,可能需要将文件分片加载。
答案 3 :(得分:0)
弗兰基的答案是正确的。不过,我建议用file()函数读取文件,然后简单地计算数组元素。