计算字符在非常大的文本文件中出现的次数

时间:2009-11-04 16:21:37

标签: php

我想计算一个非常大的文本文件中所有逗号的出现(它有逗号分隔的数据)。大小是28mb。我想加载文本文件并做这样的事情:

substr_count($text, ',');

好主意?它会起作用吗?

总体任务是找出它有多少行数据。当我计算逗号的数量时,我将把它除以将给出行数的列数。如果有更好的方法,请告诉我!

全部谢谢

修改

以下有效,但建议有效吗?

$lines = file('C:\wamp\CE.txt');

$number = 0;

foreach($lines as $line){

   $number = $number + substr_count($line, ',');

}

echo $number;

4 个答案:

答案 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()函数读取文件,然后简单地计算数组元素。