(PHP 4, PHP 5, PHP 7)
fseek — Procura (seeks) em um ponteiro de arquivo
$handle
, int $offset
[, int $whence
= SEEK_SET
] )
Modifica o indicador de posição do arquivo referenciado por
handle
. A nova posição, medida em bytes a partir
do início do arquivo, é obtida ao adicionar
offset
à posição especificada por
whence
.
Geralmente é permitido procurar (seek) além do fim-do-arquivo; se algum dado for então escrito, leituras além de qualquer região escrita entre o fim-do-arquivo e a região desejada irão trazer bytes com valor 0. Entretanto, alguns fluxos (streams) podem não suportar esse comportamento, especialmente quando têm definido um tamanho de armazenamento fixo.
handle
Um ponteiro de arquivo tipo resource tipicamente criado por fopen().
offset
A posição.
Para mover até uma posição anterior ao fim-do-arquivo, você precisa passar
um valor negativo no offset
e
definir o parâmetro whence
para SEEK_END
.
whence
Valores de whence
são:
SEEK_SET
- Define a posição igual ao offset
bytes.SEEK_CUR
- Define a posição para a atual localização mais offset
.SEEK_END
- Define a posição para o final do arquivo mais offset
.Em caso de sucesso, retorna 0; caso contrário, retorna -1.
Exemplo #1 Exemplo de fseek()
<?php
$fp = fopen('arquivo.txt');
// lê alguns dados
$data = fgets($fp, 4096);
// move de volta para o inicio do arquivo
// o mesmo que rewind($fp);
fseek($fp, 0);
?>
Nota:
Se você abriu o arquivo em modo de adição (a ou a+), quaisquer dados que você escreva no arquivo serão sempre acrescentados ao final, independente da posição do arquivo, e o resultado da chamada de fseek() será undefined.
Nota:
Nem todos os fluxos (streams) suportam procura (seek). Para aqueles que não suportam, procuras além da posição atual podem ser feitas através da leitura e descarte de dados; outras formas de procura vão falhar.