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