A sleek way of counting the number of lines in a file can be like below
$file = new \SplFileObject('file.extension', 'r');
$file->seek(PHP_INT_MAX);
echo $file->key() + 1;
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
SplFileObject::seek — ファイルポインタを指定行に移動させる
line
ゼロを起点とした移動させる行数。
値を返しません。
line
が負の値の場合、LogicException がスローされます。
例1 SplFileObject::seek() の例
この例はポジション 2 で見つかるスクリプトの第 3 行目を出力します。
<?php
$file = new SplFileObject(__FILE__);
$file->seek(2);
echo $file->current();
?>
上の例の出力は、 たとえば以下のようになります。
$file->seek(2);
A sleek way of counting the number of lines in a file can be like below
$file = new \SplFileObject('file.extension', 'r');
$file->seek(PHP_INT_MAX);
echo $file->key() + 1;