Ouvrir/Lire/Fermer un fichier PHP

Dans cette section, nous vous expliquons comment ouvrir, lire et fermer un fichier sur le serveur.

Ouvrir un fichier PHP - fopen()

La meilleure manière d'ouvrir un fichier est par la fonction fopen(). Cette fonction vous offre plus d'options que la fonction readfile().

Dans ce cours, nous utiliserons le fichier texte "webdictionary.txt" :

AJAX = JavaScript et XML Asynchrones
CSS = Feuilles de Style en Cascade
HTML = Langage de Marquage Hyper Texte
PHP = Préprocesseur Hypertexte PHP
SQL = Langage de Requête Structurée
SVG = Graphiques Vectoriels Scalables
XML = Langage de Marquage Extensible (EXtensible Markup Language)

Le premier paramètre de fopen() contient le nom du fichier à ouvrir, le deuxième paramètre spécifie le mode d'ouverture du fichier. Si la fonction fopen() ne parvient pas à ouvrir le fichier spécifié, l'exemple suivant génère un message :

Exemple

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Impossible d'ouvrir le fichier !");
echo fread($myfile, filesize("webdictionary.txt"));
fclose($myfile);
?>

Exemple de fonctionnement

Astuce :Nous allons apprendre à utiliser les fonctions fread() et fclose() à suivre.

Le fichier sera ouvert dans l'un des modes suivants :

Mode Description
r Ouvrir un fichier en lecture seule. Le pointeur de fichier commence au début du fichier.
w Ouvrir un fichier en écriture seule. Le contenu du fichier sera supprimé ou un nouveau fichier sera créé s'il n'existe pas. Le pointeur de fichier commence au début du fichier.
a Ouvrir un fichier en écriture seule. Les données existantes dans le fichier seront conservées. Le pointeur de fichier commence à la fin du fichier. Créer un nouveau fichier s'il n'existe pas.
x Créer un nouveau fichier en écriture seule. Retourne FALSE et génère une erreur si le fichier existe déjà.
r+ Ouvrir un fichier en lecture/écriture, le pointeur de fichier commence au début du fichier.
w+ Ouvrir un fichier en lecture/écriture. Le contenu du fichier sera supprimé ou un nouveau fichier sera créé s'il n'existe pas. Le pointeur de fichier commence au début du fichier.
a+ Ouvrir un fichier en lecture/écriture. Les données existantes dans le fichier seront conservées. Le pointeur de fichier commence à la fin du fichier. Créer un nouveau fichier s'il n'existe pas.
x+ Créer un nouveau fichier en lecture/écriture. Retourne FALSE et génère une erreur si le fichier existe déjà.

PHP lire un fichier - fread()

La fonction fread() lit un fichier ouvert.

Le premier paramètre de fread() contient le nom du fichier à lire, le deuxième paramètre 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"));

PHP fermer un fichier - fclose()

La fonction fclose() est utilisée pour fermer un fichier ouvert.

Remarque :Fermer tous les fichiers utilisés après leur utilisation est une bonne habitude de programmation. Vous ne voulez pas que des fichiers ouverts occupent des ressources serveur.

fclose() nécessite le nom du fichier à fermer (ou une variable contenant le nom du fichier):

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

PHP lire une ligne de fichier - fgets()

La fonction fgets() est utilisée pour lire une ligne à partir d'un fichier.

L'exemple suivant 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);
?>

Exemple de fonctionnement

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

PHP vérifie End-Of-File - feof()

La fonction feof() vérifie si nous sommes arrivés à la "fin du fichier" (EOF).

feof() est très utile pour parcourir des données de longueur inconnue.

L'exemple suivant lit le fichier "webdictionary.txt" ligne par ligne jusqu'à la fin du fichier :

Exemple

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Impossible d'ouvrir le fichier !");
// Affichez une ligne à la fois jusqu'à la fin du fichier
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

Exemple de fonctionnement

PHP lecture de caractère unique - fgetc()

La fonction fgetc() est utilisée pour lire un seul caractère à partir du fichier.

L'exemple suivant lit le fichier "webdictionary.txt" caractère par caractère jusqu'à la fin du fichier :

Exemple

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

Exemple de fonctionnement

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

Manuel de référence Filesystem PHP

Pour obtenir un manuel de référence complet du système de fichiers PHP, veuillez consulter celui fourni par CodeW3C.com Manuel de référence Filesystem PHP.