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