Fichier PHP Ouvrir/Lire/Fermer
Dans ce chapitre, nous allons vous apprendre à ouvrir, lire et fermer un fichier sur le serveur.
Fichier PHP ouvert - fopen ()
Une meilleure méthode pour ouvrir des fichiers est avec la fopen()
fonction. Cette fonction vous donne plus d'options que la readfile()
fonction.
Nous utiliserons le fichier texte "webdictionary.txt" pendant les cours :
AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language
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. L'exemple suivant génère également un message si la fonction fopen() ne parvient pas à ouvrir le fichier spécifié :
Exemple
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>
Astuce : Les fonctions fread()
et fclose()
sont expliquées ci-dessous.
Le fichier peut être ouvert dans l'un des modes suivants :
Modes | Description |
---|---|
r | Open a file for read only. File pointer starts at the beginning of the file |
w | Open a file for write only. Erases the contents of the file or creates a new file if it doesn't exist. File pointer starts at the beginning of the file |
a | Open a file for write only. The existing data in file is preserved. File pointer starts at the end of the file. Creates a new file if the file doesn't exist |
x | Creates a new file for write only. Returns FALSE and an error if file already exists |
r+ | Open a file for read/write. File pointer starts at the beginning of the file |
w+ | Open a file for read/write. Erases the contents of the file or creates a new file if it doesn't exist. File pointer starts at the beginning of the file |
a+ | Open a file for read/write. The existing data in file is preserved. File pointer starts at the end of the file. Creates a new file if the file doesn't exist |
x+ | Creates a new file for read/write. Returns FALSE and an error if file already exists |
Fichier de lecture PHP - fread ()
La fread()
fonction lit à partir d'un fichier ouvert.
Le premier paramètre de fread()
contient le nom du fichier à lire et le deuxième paramètre spécifie le nombre maximum d'octets à lire.
Le code PHP suivant lit le fichier "webdictionary.txt" jusqu'au bout :
fread($myfile,filesize("webdictionary.txt"));
Fermer le fichier PHP - fclose ()
La fclose()
fonction est utilisée pour fermer un fichier ouvert.
C'est une bonne pratique de programmation de fermer tous les fichiers une fois que vous en avez terminé avec eux. Vous ne voulez pas qu'un fichier ouvert tourne sur votre serveur et consomme des ressources !
Le fclose()
requiert le nom du fichier (ou une variable contenant le nom du fichier) que nous voulons fermer :
<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>
PHP Lire une seule ligne - fgets ()
La fgets()
fonction est utilisée pour lire 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("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>
Remarque : Après un appel à la fgets()
fonction, le pointeur de fichier est passé à la ligne suivante.
Vérification PHP de fin de fichier - feof ()
La feof()
fonction vérifie si la "fin de fichier" (EOF) a été atteinte.
La feof()
fonction est utile pour parcourir des données de longueur inconnue.
L'exemple ci-dessous lit le fichier "webdictionary.txt" ligne par ligne, jusqu'à la fin du fichier :
Exemple
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one line until end-of-file
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>
PHP Lire un seul caractère - fgetc ()
La fgetc()
fonction est utilisée pour lire un seul caractère à partir d'un fichier.
L'exemple ci-dessous lit le fichier "webdictionary.txt" caractère par caractère, jusqu'à la fin du fichier :
Exemple
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one character until end-of-file
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>
Remarque : Après un appel à la fgetc()
fonction, le pointeur de fichier passe 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 complète du système de fichiers PHP .