Fonction fseek

La fonction fseek permet de déplacer le pointeur de position dans un fichier. Son premier paramètre est un pointeur de fichier, le deuxième est un décalage en octets, et le troisième (optionnel) est le point de référence. La fonction retourne 0 en cas de succès et -1 en cas d'erreur.

Syntaxe

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

Exemple

Déplaçons le pointeur au 10ème octet depuis le début du fichier :

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

Exemple

Déplaçons le pointeur de 5 octets à partir de la position actuelle :

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

Exemple

Déplaçons le pointeur de 5 octets à partir de la fin du fichier :

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

Exemple

Vérifions le résultat de l'exécution de fseek :

php<?php
  $file = fopen('test.txt', 'r');
  $res = fseek($file, 10);
  echo $res; // 0 en cas de succès, -1 en cas d'erreur
  fclose($file);
?>

Résultat de l'exécution du code :

php0

Voir aussi

  • la fonction rewind,
    qui remet le pointeur de fichier à zéro
  • la fonction ftell,
    qui retourne la position actuelle
  • la fonction fread,
    qui lit depuis un fichier