fseek

(PHP 4, PHP 5, PHP 7, PHP 8)

fseekModifie la position du pointeur de fichier

Description

fseek(resource $stream, int $offset, int $whence = SEEK_SET): int

Modifie le curseur de position dans le fichier stream. La nouvelle position, mesurée en octets, à partir du début du fichier, est obtenue en additionnant la distance offset à la position whence.

En général, il est possible de se déplacer au delà de la fin du flux (eof); si des données sont écrites dans ce cas, l'espace entre la fin du flux et la position courante sera rempli d'octets nuls. Cependant, certains flux ne supportent pas ce comportement, en particulier lorsque l'espace de stockage sous-jascent est de taille fixe.

Liste de paramètres

stream

Un pointeur de système de fichiers de type resource qui est habituellement créé en utilisant la fonction fopen().

offset

La position.

Pour se déplacer à une position avant la fin du fichier, une valeur négative dans le offset doit être passée et le paramètre whence doit être défini sur SEEK_END.

whence

Les valeurs possibles pour whence sont :

  • SEEK_SET - Définir la position égale à offset octets depuis le début du fichier.
  • SEEK_CUR - Définir la position à l'emplacement actuel plus offset octets.
  • SEEK_END - Définir la position à la fin du fichier plus offset octets.

Valeurs de retour

En cas de succès, retourne 0; sinon, retourne -1.

Avertissement

Cette fonction a été créée pour imiter la fonction du même nom en langage C. Veuillez faire attention aux valeurs de retour car elles diffèrent de ce que l'on pourrait attendre en PHP.

Exemples

Exemple #1 Exemple avec fseek()

<?php

$fp
= fopen('somefile.txt', 'r');

// lit quelques données
$data = fgets($fp, 4096);

// retourne au début du fichier
// identique à rewind($fp);
fseek($fp, 0);

?>

Notes

Note:

Si vous ouvrez le fichier avec le mode a ou a+, toutes les données que vous écrirez dans le fichier seront toujours ajoutées, sans se soucier de la position dans le fichier.

Note:

Tous les flux ne supportent pas le déplacement. Pour ceux qui ne le supportent pas, le déplacement en avant se fera en lisant et libérant les octets; les autres formes de déplacements échoueront.

Voir aussi

  • ftell() - Renvoie la position courante du pointeur de fichier
  • rewind() - Replace le pointeur de fichier au début