Задача
Необходимо прочитать из файла определенную строку, например самую свежую запись в гостевой книге, которая была добавлена в конец файла гостевой книги.
Решение
Если файл помещается в память, то прочитайте его в массив и извлеките соответствующий элемент массива:
$lines = file('vacation-hotspots.txt');
print $lines;
Обсуждение
Поскольку индексирование массива начинается с 0, то элемент $lines ссылается на третью строку файла.
Если файл не помещается в память, то читайте его строку за строкой и отслеживайте, на какой строке вы находитесь:
$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)) {