fseek - Устанавливает смещение в файловом указателе
Вернуться к: Файловая система
fseek
(PHP 4, PHP 5, PHP 7)
fseek — Устанавливает смещение в файловом указателе
Описание
$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($fp, 4096);
// перемещаемся назад к началу файла
// то же самое, что и rewind($fp);
fseek($fp, 0);
?>
Примечания
Замечание:
Если файл открыт в режиме "записи в конец" (a или a+), любые записываемые в файл данные будут записываться в конец, вне зависимости от позиции файла, а результат вызова fseek() будет не определен.
Замечание:
Не все потоки поддерживают смещение указателя. Для потоков, не поддерживающих эту операцию, смещение вперед осуществляется чтением и отбрасыванием данных, другие формы смещения закончатся ошибкой.
Смотрите также
Вернуться к: Файловая система