Ja, das kannst du ganz einfach mit SplFileObject::seek
machen
$file = new SplFileObject('filename.txt');
$file->seek(1000);
for($i = 0; !$file->eof() && $i < 1000; $i++) {
echo $file->current();
$file->next();
}
Das ist eine Methode aus dem SeekableIterator Interface und darf nicht mit fseek
verwechselt werden.
Und weil SplFileObject iterierbar ist, kannst du es noch einfacher mit einem LimitIterator
machen:
$file = new SplFileObject('longFile.txt');
$fileIterator = new LimitIterator($file, 1000, 2000);
foreach($fileIterator as $line) {
echo $line, PHP_EOL;
}
Dies ist erneut nullbasiert, also entspricht es den Zeilen 1001 bis 2001.