LOGO Lionel Groulx

Site Web du cours « Programmation de Systèmes »

PHP Chapitre 8 : Lecture et écriture dans un fichier

 8.1    Ouverture du fichier : fopen

Il faut bien faire attention à ce que les droits soient respectés lors de l'ouverture (droits d'accès, lecture et/ou écriture).

Voici un exemple de syntaxe :

$monfichier = fopen('compteur.txt', 'r+');

Voici les différentes options disponibles :

Option

Description

r

Lecture seule

r+

Lecture et écriture

a

Écriture*

a+

Lecture+écriture*

*  : à utiliser dans le cas où le fichier n’existe pas : il sera automatiquement créé.

 

 8.2    Lecture dans le fichier

 8.2.1     Lecture caractère par caractère : fgetc

Ce n'est pas la solution la plus couramment utilisée. Il est plus pratique de lire ligne par ligne dans un fichier. Cependant elle reste disponible.

 8.2.2     Lecture ligne par ligne : fgets

$ligne = fgets($monfichier);

Juste après ouverture du fichier, c'est la première ligne qui est lue.

Si l'on exécute à nouveau la fonction, c'est la seconde, etc...

 

 8.3    Écriture dans le fichier : fputs

Pour l'écriture, il faut avoir précédemment ouvert le fichier en écriture au moins.

fputs($monfichier, 'Texte à écrire');

Attention : l'écriture s'effectue à la position du pointeur actuel, ainsi elle peut très bien écraser des données si l'on ne se situe pas à la fin du fichier.

 

 8.4    Déplacer le pointeur dans le fichier : fseek

fseek($monfichier, 0); // remet le curseur au début

fseek($monfichier, 0, SEEK_END); // met le curseur à la fin

Autre méthode :

rewind ($monfichier); // remet le curseur au début

(source : (fseek))

Aussi (source : (Converse & Park, 2000)):

while (!feof($fd)) //tant que fin de fichier non atteinte

{

$maligne = fgets($monfichier);

echo $ligne;

}

 8.5    Fermeture de fichier : fclose

fclose($monfichier);