(PHP 4, PHP 5, PHP 7, PHP 8)
fseek — Перемещает позицию файлового указателя
Функция устанавливает положение указателя в файле, на который ссылается
поток stream. Новое положение указателя измеряется в байтах
от начала файла и рассчитывается путём прибавления значения параметра
offset к позиции параметра whence.
В общем случае разрешается перемещать указатель за пределы конца файла; при записи данных за пределами конца файла чтение из незаписанной области между концом файла и заданной позицией указателя выдаст байты со значением 0. Однако отдельные потоки не поддерживают такое поведение, в первую очередь потоки на основе хранилищ фиксированного размера.
streamРесурс (resource) указателя файловой системы, который обычно создают функцией fopen().
offsetСмещение.
В параметр offset передают отрицательное значение,
а для параметра whence устанавливают
значение SEEK_END,
чтобы перейти к позиции перед концом файла.
whence
Параметр whence принимает следующие значения:
SEEK_SET — Перемещает указатель в положение,
равное количеству байтов смещения offset от начала файла.
SEEK_CUR — Перемещает указатель вперёд — в положение,
равное количеству байтов смещения offset от текущей позиции.
SEEK_END — Перемещает указатель за пределы конца файла — в положение,
равное количеству байтов смещения offset от конца файла.
Функция возвращает 0, если выполнилась успешно;
иначе возвращает значение -1.
Функция имитирует поведение функции языка C с тем же названием и возвращает нестандартные значения, непохожие на те, которые ожидались бы в PHP.
Пример #1 Пример использования функции fseek()
<?php
$fp = fopen('somefile.txt', 'r');
// Читаем фрагмент данных
$data = fgets($fp, 4096);
// Перемещаемся назад к началу файла —
// то же, что и вызов rewind($fp);
fseek($fp, 0);
?>Замечание:
Функция будет только дописывать данные в конец файла, независимо от позиции указателя в файле, а результат вызова функции fseek() будет неопределённым, если файл открыли в режиме
a— только для чтения или в режимеa+— для чтения или добавления данных в конец файла.
Замечание:
Не каждый поток поддерживает перемещение указателя. В потоках, которые не поддерживают перемещение файлового указателя, функция перемещает указатель вперёд от текущей позиции путём считывания и отбрасывания данных; другие формы перемещения указателя закончатся ошибкой.