PHP: указатель файла fopen () на выбранную строку - PullRequest
3 голосов
/ 18 января 2011

Как поместить указатель файла в выбранную строку (например, 1 известь снизу) при открытии файла с помощью fopen ()?

Ответы [ 4 ]

4 голосов
/ 18 января 2011

Если вы знаете смещение в файле нужных вам данных, вы всегда можете fseek () к нему.Конечно, проблема заключается в обнаружении того, где вам нужно найти файл.Если вы можете использовать SEEK_END в качестве опции, то смещение будет относиться к концу файла, а не к началу, что может оказаться полезным для вас.

Кроме того, вы можете использовать функцию file () для загрузки данных файла в массив.Каждый элемент в массиве представляет строку файла, поэтому вторым или последним элементом в массиве будет нужный элемент.

1 голос
/ 15 августа 2017

Существует метод SplFileObject :: seek , который может позиционировать указатель на N-ю строку.

1 голос
/ 18 января 2011

Возможно, вам придется прочитать окончание строки вашего файла "\ n". Что-то вроде:

function fseek_line($handle, $count) {
  while ((--$count > 0) && (fgets($handle, 4096) !== false)) { }
}

Если вам нужна последняя строка, просто откройте в режиме добавления fopen("file.txt", "a");

0 голосов
/ 18 января 2011

К сожалению, нет простого способа для этого. Так как файлы не сохраняются, нет порядка перехода на одну строку или несколько.

Но посмотрите эту ветку: fseek () строка, а не байты?

...