Funkcja fseek

Funkcja fseek pozwala przesuwać wskaźnik pozycji w pliku. Jako pierwszy parametr przyjmuje wskaźnik do pliku, jako drugi - przesunięcie w bajtach, a jako trzeci (opcjonalny) - punkt odniesienia. Funkcja zwraca 0 w przypadku powodzenia i -1 w przypadku błędu.

Składnia

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

Przykład

Przesuńmy wskaźnik na 10-ty bajt od początku pliku:

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

Przykład

Przesuńmy wskaźnik o 5 bajtów od bieżącej pozycji:

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

Przykład

Przesuńmy wskaźnik o 5 bajtów od końca pliku:

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

Przykład

Sprawdźmy wynik wykonania fseek:

php<?php
  $file = fopen('test.txt', 'r');
  $res = fseek($file, 10);
  echo $res; // 0 przy sukcesie, -1 przy błędzie
  fclose($file);
?>

Wynik wykonania kodu:

php0

Zobacz też

  • funkcję rewind,
    która resetuje wskaźnik pliku
  • funkcję ftell,
    która zwraca bieżącą pozycję
  • funkcję fread,
    która czyta z pliku