我有一个快速的问题。
正如标题所说,我想找到一种方法来计算文件中包含指定字符串的行数,在 PHP 中。
我知道我可以简单地打开文件并遍历所有行,看看是否有任何匹配,但这似乎有点麻烦。有没有更好的办法?
为了进一步说明我想要做什么,以下是 awk 的外观:
awk '/KEYWORD/ {i++} END { print i }' FILE
谢谢!
我有一个快速的问题。
正如标题所说,我想找到一种方法来计算文件中包含指定字符串的行数,在 PHP 中。
我知道我可以简单地打开文件并遍历所有行,看看是否有任何匹配,但这似乎有点麻烦。有没有更好的办法?
为了进一步说明我想要做什么,以下是 awk 的外观:
awk '/KEYWORD/ {i++} END { print i }' FILE
谢谢!
这对我来说似乎并不“麻烦”:
$c = 0;
foreach(file($filename) as $line)
if (strpos($line, $str) !== false) ++$c;
您可能能够摆脱正则表达式,但如果您真的想计算行数(而不是实例),肯定没有比上述方法更清洁的方法(就简洁和清晰而言)。
编辑,根据第一条评论:
echo substr_count(file_get_contents($filename), $str);
那应该行得通。
请注意,当使用愚蠢的大文件(例如 500MB+)运行时,file() 会阻塞。如果这在您的 Web 应用程序中很常见,例如许多并发用户计算巨大的文件大小,这将影响性能。