Как эффективно перейти к определенной строке в файле? - PullRequest
0 голосов
/ 26 октября 2011

Я знаю, что я могу читать файл построчно с помощью этой функции , а затем я могу просто сделать что-то вроде if($line_no < $X) continue;, но мне было интересно, есть ли что-нибудь более эффективное?Это могут быть некоторые потенциально большие файлы, которые я читаю, и я не хочу помещать все в гигантский массив, большинство из которых я собираюсь игнорировать.

1 Ответ

1 голос
/ 27 октября 2011

PHP не может перейти к определенной строке, используя только номера строк без дополнительной обработки. Если у вас есть количество пропускаемых байтов , вы можете просто использовать fseek().

Если вам не хватает памяти, просто используйте file(), я не могу вам помочь, но вы можете использовать:

$file = array_slice(file(__FILE__), __LINE__ - 1));

Чтобы получить строки после нужной строки, не добавляя ничего лишнего в память. Это должно быть относительно быстро даже для больших файлов.

Если этого все еще недостаточно, вы можете рассмотреть возможность использования другого языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...