Файловая система
PHP Manual

fseek

(PHP 4, PHP 5, PHP 7)

fseekУстанавливает смещение в файловом указателе

Описание

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )

Устанавливает смещение в файле, на который ссылается handle. Новое смещение, измеряемое в байтах от начала файла, получается путём прибавления параметра offset к позиции, указанной в параметре whence.

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

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

offset

Смещение.

Для смещения позиции перед концом файла необходимо передать отрицательное значение offset и установить параметр whence в SEEK_END.

whence

Значениями whence являются:

  • SEEK_SET - Устанавливает смещение в offset байт.
  • SEEK_CUR - Устанавливает смещение в текущее положение плюс offset.
  • SEEK_END - Устанавливает смещение в конец файла плюс offset.

Возвращаемые значения

В случае успеха возвращает 0; в противном случае возвращает -1.

Примеры

Пример #1 Пример использования функции fseek()

<?php

$fp 
fopen('somefile.txt''r');

// читаем немного данных
$data fgets($fp4096);

// перемещаемся назад к началу файла
// то же самое, что и rewind($fp);
fseek($fp0);

?>

Примечания

Замечание:

Если файл открыт в режиме "записи в конец" (a или a+), любые записываемые в файл данные будут записываться в конец, вне зависимости от позиции файла, а результат вызова fseek() будет не определен.

Замечание:

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

Смотрите также


Файловая система
PHP Manual