Обработка файла по строкам или абзацам в обратном направлении

Задача
Необходимо осуществить некие действия над каждой строкой файла, начиная с конца. Например, нетрудно добавить новую запись гостевой книги в конец файла, открыв его в режиме добавления, но при показе требуется сначала отобразить самые последние записи, поэтому необходимо обрабатывать файл, начиная с конца.

Решение
Если файл помещается в памяти, то надо с помощью функции file() прочитать каждую строку файла в массив, а затем перевернуть этот массив:

$lines = file('guestbook.txt');
$lines = array_reverse($lines);

Обсуждение
Можно также выполнить цикл и по не перевернутому массиву строк, начиная с конца. Ниже показано, как напечатать последние 10 строк файла, начиная с последней строки:

$lines = file(’guestbook.txt’);
for ($i = 0, $j = count($lines); $i <= 10; $i++) {
print $lines[$j - $i];
}

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Блокировка файла
Выбор случайной строки из файла
Запись в несколько файловых дескрипторов одновременно
Запись в стандартный поток вывода
Непосредственная модификация файла без временной копии

Вернуться в раздел: PHP / 18. Файлы