Travailler avec des fichiers en PHP

Catégorie Découverte du langage PHP < Programmation PHP : Accueil du site

Vous êtes ici : Travailler avec des fichiers en PHP

Publié par Mikiman

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.

Lire dans un fichier


Pour lire dans un fichier nous utiliserons la fonction PHP : file_get_contents();
Voici la méthode d'utilisation :

Code source :

file_get_contents(fichier)



Voici un petit exemple :

Code source :

<?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.

Contrôler l'existence d'un fichier


La fonction PHP qui permet de savoir si un fichier existe bien est : file_exists();
Voici la méthode d'utilisation :

Code source :

file_exists(fichier)



Cette fonctionne retourne un résultat de type booléen (TRUE ou FALSE (vrai ou faux)).
Voici un exemple :

Code source :

<?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.

Créer un fichier avec PHP


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 :

Code source :

fopen(chemintype)
fwrite(fichiercontenu)
fclose(fichier)



Voici directement un exemple d'utilisation :

Code source :

<?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().

Les différents types de mode de la fonction fopen()


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.