Чтение определенной строки в файле

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

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

$lines = file('vacation-hotspots.txt');
print $lines[2];

Обсуждение
Поскольку индексирование массива начинается с 0, то элемент $lines[2] ссылается на третью строку файла.

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

$line_counter = 0;
$desired_line = 29;
$fh = fopen('vacation-hotspots.txt','r') or die($php_errormsg);
while ((! feof($fh)) && ($line_counter <= $desired_line)) {
if ($s = fgets($fh,1048576)) {
$line_counter++;
}
}
fclose($fh) or die($php_errormsg);
print $s;

Если продолжить логику кода из раздела «Решение», то в результате присваивания $desired_line = 29 будет выведена 30-я строка файла. Для печати 29-й строки файла измените цикл while следующим образом:

while ((! feof($fh)) && ($line_counter < $desired_line)) {

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

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

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