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_tell() будет вызвана сразу после того, как streamWrapper::stream_seek() отработает. Если выполнение streamWrapper::stream_tell() завершится неудачей, то в вызывающую функцию будет возвращено значение false

Замечание:

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

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

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

add a note add a note

User Contributed Notes 1 note

up
1
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