Função fseek

A função fseek permite mover o ponteiro de posição em um arquivo. Como primeiro parâmetro, ela aceita um ponteiro para o arquivo, como segundo - um deslocamento em bytes, e como terceiro (opcional) - o ponto de referência. A função retorna 0 em caso de sucesso e -1 em caso de erro.

Sintaxe

phpfseek(resource $handle, int $offset, int $whence = SEEK_SET): int

Exemplo

Vamos mover o ponteiro para o 10º byte a partir do início do arquivo:

php<?php
  $file = fopen('test.txt', 'r');
  fseek($file, 10);
  echo fgets($file);
  fclose($file);
?>

Exemplo

Vamos mover o ponteiro 5 bytes a partir da posição atual:

php<?php
  $file = fopen('test.txt', 'r');
  fseek($file, 5, SEEK_CUR);
  echo fgets($file);
  fclose($file);
?>

Exemplo

Vamos mover o ponteiro 5 bytes a partir do final do arquivo:

php<?php
  $file = fopen('test.txt', 'r');
  fseek($file, -5, SEEK_END);
  echo fgets($file);
  fclose($file);
?>

Exemplo

Vamos verificar o resultado da execução do fseek:

php<?php
  $file = fopen('test.txt', 'r');
  $res = fseek($file, 10);
  echo $res; // 0 em caso de sucesso, -1 em caso de erro
  fclose($file);
?>

Resultado da execução do código:

php0

Veja também

  • a função rewind,
    que redefine o ponteiro do arquivo
  • a função ftell,
    que retorna a posição atual
  • a função fread,
    que lê do arquivo