PHP Accueil
Chapitres :
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);