我想在特定行之后计算文本文件(.txt)的行。
示例:我想在第10行之后,然后在第11行直到结束进行计数。
有可能吗?
我尝试过的事情:
$files = "log.txt";
echo count(file($files));
但是您知道它将计算所有行。
我想要的是,在第10行之后,然后是第11行,直到计数结束为止。
有什么主意吗?
更新 只需要计算带有值的行,忽略空行/行
答案 0 :(得分:1)
尝试一下
$files ="log.txt";
$f = fopen($files, 'rb');
$row = 1;
while (!feof($f)) {
$row += substr_count(fread($f, 8192), "\n");
}
fclose($f);
echo $row;
如果不计算空行,则为
$r = array_filter(array_map("trim", file($files)), "strlen");
echo count($r);
答案 1 :(得分:0)
与markatonay类似,但更短:
$text = file_get_contents('/tmp/log.txt');
$lines = array_filter(array_map('trim', explode("\n", $text)));
print_r($lines);
echo "COUNT:" . count($lines);
echo "\r\n";