PHP: код, получающий ссылки из X строк на Y Lines, не работает

Это код, который я использовал, чтобы получить строки между линиями X и Y:

$files = new SplFileObject($filename);
$fileIterator = new LimitIterator($files, 1800, 2000);

Я хочу получить 200 строк с 1800 по 2000 год. Однако, когда я печатаю массив, он показывает 2000 строк. Итак, что я делаю не так?

2

Решение

Второй параметр — это количество, которое вы хотите 200 не 2000

$fileIterator = new LimitIterator($files, 1799, 200);

Вы можете проверить это из LimitIteratorдоктор:

public __construct ( Iterator $iterator [, int $offset = 0 [, int $count = -1 ]] )

Также учтите, что offset начинается с 0, так что если вы хотите 1800th линия, вам нужно использовать 1799

2

Другие решения

Когда вы посмотрите на документацию, вы увидите, что вторым параметром является счетчик, а не конечная строка.

public __construct ( Iterator $iterator [, int $offset = 0 [, int $count = -1 ]] )

http://php.net/manual/en/class.limititerator.php

$fileIterator = new LimitIterator($files, 1800, 200);

Так что вам нужно что-то вроде этого.

1

По вопросам рекламы [email protected]