1

我有一个快速的问题。

正如标题所说,我想找到一种方法来计算文件中包含指定字符串的行数,在 PHP 中。

我知道我可以简单地打开文件并遍历所有行,看看是否有任何匹配,但这似乎有点麻烦。有没有更好的办法?

为了进一步说明我想要做什么,以下是 awk 的外观:

awk '/KEYWORD/ {i++} END { print i }' FILE

谢谢!

4

2 回答 2

1

这对我来说似乎并不“麻烦”:

$c = 0;
foreach(file($filename) as $line)
  if (strpos($line, $str) !== false) ++$c;

您可能能够摆脱正则表达式,但如果您真的想计算行数(而不是实例),肯定没有比上述方法更清洁的方法(就简洁和清晰而言)。

编辑,根据第一条评论:

echo substr_count(file_get_contents($filename), $str);

那应该行得通。

于 2010-06-27T20:36:31.523 回答
0

请注意,当使用愚蠢的大文件(例如 500MB+)运行时,file() 会阻塞。如果这在您的 Web 应用程序中很常见,例如许多并发用户计算巨大的文件大小,这将影响性能。

于 2010-11-30T16:40:34.980 回答