PHP Ouverture/Lecture/Fermeture de Fichier


PHP fopen() - Ouvrir un fichier

La fonction fopen() est utilisée pour ouvrir un fichier ou une URL.

Le premier paramètre de fopen() contient le nom du fichier à ouvrir, et le deuxième paramètre spécifie dans quel mode le fichier doit être ouvert.

Le tableau suivant liste les différents modes pour ouvrir un fichier :

Mode Description
r Lecture seule . Le pointeur de fichier commence au début du fichier.
r+ Lecture/Écriture . Le pointeur de fichier commence au début du fichier. Les données existantes sont préservées.
w Écriture seule . Efface le contenu du fichier ou crée un nouveau fichier s'il n'existe pas. Le pointeur de fichier commence au début du fichier.
w+ Lecture/Écriture . Efface le contenu du fichier ou crée un nouveau fichier s'il n'existe pas. Le pointeur de fichier commence au début du fichier.
a Ajouter (écriture seule) . Les données existantes dans le fichier sont préservées. Le pointeur de fichier commence à la fin du fichier. Un nouveau fichier est créé si le fichier n'existe pas.
a+ Ajouter (lecture/écriture) . Les données existantes dans le fichier sont préservées. Le pointeur de fichier commence à la fin du fichier. Un nouveau fichier est créé si le fichier n'existe pas.
x Écriture seule . Crée un nouveau fichier. Retourne FALSE et une erreur si le fichier existe déjà.
x+ Lecture/Écriture . Crée un nouveau fichier. Retourne FALSE et une erreur si le fichier existe déjà.

Nous utiliserons le fichier texte "webdictionary.txt" pendant les leçons :

AJAX = JavaScript et XML Asynchrones
CSS = Feuilles de Style en Cascade
HTML = Langage de Marquage Hypertexte
PHP = Préprocesseur Hypertexte PHP
SQL = Langage de Requête Structuré
SVG = Graphiques Vectoriels Scalable
XML = Langage de Marquage Extensible

L'exemple suivant ouvre le fichier "webdictionary.txt" en mode lecture seule. Il génère également un message si la fonction fopen() ne parvient pas à ouvrir le fichier :

Exemple

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Erreur : Impossible d'ouvrir le fichier !");
echo fread($myfile, filesize("webdictionary.txt"));
fclose($myfile);
?>
Exécuter l'exemple »

Astuce : Les fonctions fread() et fclose() seront expliquées ci-dessous.



PHP fread() - Lire un Fichier

La fonction fread() lit à partir d'un fichier ouvert.

Le premier paramètre de fread() contient le nom du fichier à lire, et le deuxième paramètre est optionnel et spécifie le nombre maximum d'octets à lire.

Le code PHP suivant lit le fichier "webdictionary.txt" jusqu'à la fin :

fread($myfile, filesize("webdictionary.txt"));

Pour lire par exemple 50 octets du fichier "webdictionary.txt", utilisez ce code :

fread($myfile, 50);

PHP fclose() - Fermer un Fichier

La fonction fclose() ferme un fichier ouvert.

Astuce : C'est une bonne pratique de programmation de fermer tous les fichiers après les avoir utilisés. Vous ne voulez pas que des fichiers ouverts s'exécutent sur le serveur et prennent des ressources !

La fonction fclose() nécessite le nom du fichier (ou une variable qui contient le nom du fichier) à fermer :

<?php
$myfile = fopen("webdictionary.txt", "r");
// du code à exécuter....
fclose($myfile);
?>

PHP fgets() - Lire une Ligne Unique

La fonction fgets() lit une seule ligne d'un fichier.

L'exemple ci-dessous affiche la première ligne du fichier "webdictionary.txt" :

Exemple

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Impossible d'ouvrir le fichier !");
echo fgets($myfile);
fclose($myfile);
?>
Exécuter l'exemple »

Remarque : Après un appel à la fonction fgets() , le pointeur de fichier se déplace à la ligne suivante.


PHP feof() - Vérifier la Fin de Fichier

La fonction feof() vérifie si la "fin de fichier" (EOF) a été atteinte.

La fonction feof() est utile pour parcourir des données de longueur inconnue.

L'exemple ci-dessous lit le fichier "webdictionary.txt" ligne par ligne, jusqu'à ce que la fin de fichier soit atteinte :

Exemple

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Impossible d'ouvrir le fichier !");
// Afficher une ligne jusqu'à la fin de fichier
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>
Exécuter l'exemple »

PHP fgetc() - Lire un Caractère Unique

La fonction fgetc() lit un seul caractère d'un fichier.

L'exemple ci-dessous lit le fichier "webdictionary.txt" caractère par caractère, jusqu'à ce que la fin de fichier soit atteinte :

Exemple

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Impossible d'ouvrir le fichier !");
// Afficher un caractère à la fois, jusqu'à la fin de fichier
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>
Exécuter l'exemple »

Remarque : Après un appel à la fonction fgetc() , le pointeur de fichier se déplace au caractère suivant.


Référence Complète du Système de Fichiers PHP

Pour une référence complète des fonctions du système de fichiers, consultez notre Référence du Système de Fichiers PHP .