Это код, который я использовал, чтобы получить строки между линиями X и Y:
$files = new SplFileObject($filename);
$fileIterator = new LimitIterator($files, 1800, 2000);
Я хочу получить 200 строк с 1800 по 2000 год. Однако, когда я печатаю массив, он показывает 2000 строк. Итак, что я делаю не так?
Второй параметр — это количество, которое вы хотите 200
не 2000
$fileIterator = new LimitIterator($files, 1799, 200);
Вы можете проверить это из LimitIteratorдоктор:
public __construct ( Iterator $iterator [, int $offset = 0 [, int $count = -1 ]] )
Также учтите, что offset
начинается с 0, так что если вы хотите 1800th
линия, вам нужно использовать 1799
Когда вы посмотрите на документацию, вы увидите, что вторым параметром является счетчик, а не конечная строка.
public __construct ( Iterator $iterator [, int $offset = 0 [, int $count = -1 ]] )
http://php.net/manual/en/class.limititerator.php
$fileIterator = new LimitIterator($files, 1800, 200);
Так что вам нужно что-то вроде этого.