【问题标题】:PHP count row after specific row on text filePHP在文本文件上的特定行之后计算行
【发布时间】:2018-09-19 01:53:36
【问题描述】:

我想在特定行之后计算文本文件 (.txt) 的行数。

示例:我希望在第 10 行之后,然后在第 11 行直到结束。

有可能吗?

我尝试过的:

$files = "log.txt";
echo count(file($files));

但如您所知,它将计算所有行。

我想要的是,在第 10 行之后,然后第 11 行直到结束。

有什么想法吗?

更新 只需要计算有值的行,空行/行忽略

【问题讨论】:

  • 我对PHP不是很熟悉,但是你不能减10吗?
  • @ricky3350 怎么办?
  • echo count(file($files)) - 10;,也许?
  • 它正在工作,但我只需要计算具有值的行。如果为空行则不计。有可能吗?
  • 请更新您的问题以包含该附加要求@HiDayurieDave

标签: php count row


【解决方案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);

【讨论】:

  • 试过了,结果不一样。在 log.txt 上有 1752 行。在 PHP 脚本上有 1764 行
  • 另外,忽略计算空行
  • @HiDayurieDave 的文本编辑器中的行数截图。
【解决方案2】:

类似于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";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 2014-04-19
    • 2018-12-16
    • 1970-01-01
    相关资源
    最近更新 更多