streamWrapper::stream_seek

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_seekПеремещает положение файлового указателя в потоке

Описание

public streamWrapper::stream_seek(int $offset, int $whence = SEEK_SET): bool

Метод вызывается в ответ на функцию fseek().

Позиция потока, с которой данные будут считываться или записываться в поток, обновляется с учётом смещения offset и значения параметра whence, от которого отсчитывается смещение.

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

offset

Смещение в потоке, на которое переместится указатель.

whence

Доступные значения:

  • SEEK_SET — Перемещает указатель в положение, равное количеству байтов смещения offset от начала файла.
  • SEEK_CUR — Перемещает указатель вперёд — в положение, равное количеству байтов смещения offset от текущей позиции.
  • SEEK_END — Перемещает указатель за пределы конца файла — в положение, равное количеству байтов смещения offset от конца файла.

Замечание: Текущая реализация метода не устанавливает для параметра whence значение SEEK_CUR; вместо перемещения указателя от текущей позиции перемещение внутренне преобразовывается в режим SEEK_SET.

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

Метод возвращает true, если обновил позицию указателя, иначе false.

Примечания

Замечание:

Значение false предполагается как значение возврата, если метод не реализовали.

Замечание:

В случае успешного выполнения сразу после вызова метода streamWrapper::stream_seek() вызывается метод streamWrapper::stream_tell(). Значение false устанавливается как значение возврата функции, которая вызвала этот метод, если метод streamWrapper::stream_tell() завершится ошибкой.

Замечание:

Не каждая операция перемещения указателя в потоке вызывает этот метод. PHP-потоки по умолчанию буферизируют считывание (смотрите также описание функции stream_set_read_buffer()), поэтому перемещение указателя иногда завершается простым перемещением указателя буфера.

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

  • fseek() - Перемещает позицию файлового указателя

add a note

User Contributed Notes 1 note

up
3
fb at tigermedia dot dk
10 years ago
Please notice that the return value of this function is a boolean but the return value of fseek is 0 for ok and -1 for failure.

Please use this implementation when working with files:

function stream_seek($offset, $whence) {
if(0 === fseek($this->_handler, $offset, $whence)){
return true;
}
return false;
}
To Top