Découverte du langage PHP
< Programmation PHP
: Accueil du site
Vous êtes ici : Travailler avec des fichiers en PHP
Nous allons voir dans cet article comment récupérer les données d'un fichier ainsi que comment en créer un.
On va travailler dans cet article avec des fichiers d'extension .txt mais sachez que l'on peut utiliser l'extension que l'on veut.
Pour lire dans un fichier nous utiliserons la fonction PHP : file_get_contents();
Voici la méthode d'utilisation :
file_get_contents(fichier)
Voici un petit exemple :
<?php
$contenu_fichier = file_get_contents('fichier.txt');
echo $contenu_fichier;
?>
On créer une variable $contenu_fichier qui a pour valeur le contenu du fichier : fichier.txt.
A la deuxième ligne on affiche tout simplement la variable $contenu_fichier créer à la ligne précédente.
Ce script permet d'afficher le contenu du fichier : fichier.txt.
La fonction PHP qui permet de savoir si un fichier existe bien est : file_exists();
Voici la méthode d'utilisation :
file_exists(fichier)
Cette fonctionne retourne un résultat de type booléen (TRUE ou FALSE (vrai ou faux)).
Voici un exemple :
<?php
$fichier = 'fichier.txt';
if(file_exists($fichier)){
echo 'Le fichier : '.$fichier.' existe';
}else{
echo 'Le fichier : '.$fichier.' n\'existe pas';
}
?>
On commence en créant une variable $fichier qui contient le nom du fichier à tester.
On créer ensuite une condition de type "if" qui prend comme condition notre fonction file_exists sur notre variable $fichier.
Si la condition est correcte (rappel : file_exists de type booléen) on affiche "Le fichier #nomdufichier# existe" sinon "Le fichier #nomdufichier" n'existe pas.
Pour créer un fichier en PHP il faut obligatoirement que le fichier dans lequel sera créer le fichier est accessible en écriture.
Nous utiliserons deux fonctions : fopen() et fwrite().
Voici la méthode d'utilisation :
fopen(chemin, type)
fwrite(fichier, contenu)
fclose(fichier)
Voici directement un exemple d'utilisation :
<?php
$contenu = 'Le contenu à mettre dans le fichier';
$fichier = fopen('fichier.txt', 'w+');
fwrite($fichier, $contenu);
fclose($fichier);
?>
On commence notre application web en créant une variable $contenu contenant le contenu que l'on souhaite ajouter au fichier.
On ouvre ensuite le fichier à l'aide de la fonction fopen(). Les arguments de fopen() prend comme argument le nom du fichier à ouvrir et le mode d'ouverture ('w+' dans notre cas).
A la ligne suivante on inscrit le contenu dans le fichier à l'aide de la fonction fwrite(). Le premier argument est la variable du fichier ouvert plus haut puis le contenu à ajouter.
On termine l'application web en fermant le fichier à l'aide de la fonction fclose().
r : Ouvre en lecture seule, et place le pointeur de fichier au début du fichier.
r+: Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.
w : Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
w+ : Ouvre en lecture et écriture ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
a : Ouvre en écriture seule ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.
a+ : Ouvre en lecture et écriture ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.
x : Crée et ouvre le fichier en lecture seule ; place le pointeur de fichier au début du fichier. Si le fichier existe déjà, fopen() va échouer, en retournant FALSE et en générant une erreur de niveau E_WARNING. Si le fichier n'existe pas, fopen() tente de le créer. Ce mode est l'équivalent des options O_EXCL|O_CREAT pour l'appel système open(2) sous-jacent. Cette option est supportée à partir de PHP 4.3.2 et fonctionne uniquement avec des fichiers locaux.
x+ : Crée et ouvre le fichier en lecture et écriture ; place le pointeur de fichier au début du fichier. Si le fichier existe déjà, fopen() va échouer, en retournant FALSE et en générant une erreur de niveau E_WARNING. Si le fichier n'existe pas, fopen() tente de le créer. Ce mode est l'équivalent des options O_EXCL|O_CREAT pour l'appel système open(2) sous-jacent. Cette option est supportée à partir de PHP 4.3.2, et fonctionne uniquement avec des fichiers locaux.