Travailler avec le système de fichiers en PHP : guide complet pour débutants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : pourquoi PHP sait-il travailler avec des fichiers ?

Tout projet web rencontre tôt ou tard le besoin de sauvegarder des données sur le serveur. Qu'il s'agisse de télécharger un avatar d'utilisateur, de créer des journaux d'erreurs ou de générer des rapports, tout cela nécessite de savoir gérer les fichiers et les dossiers. PHP fournit un ensemble puissant de fonctions pour travailler avec le système de fichiers, et les maîtriser n'est pas aussi difficile qu'il n'y paraît.

Dans cet article, nous aborderons les opérations de base : création, lecture, écriture, suppression de fichiers et de répertoires, ainsi que la vérification des droits d'accès. Tous les exemples sont écrits en PHP pur et prêts à être utilisés dans vos projets.



1. Bases : ouverture, lecture et écriture de fichiers

Avant de faire quoi que ce soit avec un fichier, il faut l'ouvrir. Pour cela, PHP utilise la fonction fopen(). Elle retourne une ressource (un pointeur vers le fichier) avec laquelle on peut ensuite travailler.



Modes d'ouverture des fichiers

Le deuxième paramètre de fopen() est le mode d'accès. Voici les plus courants :

  • 'r' — lecture seule, pointeur au début du fichier.
  • 'w' — écriture (crée le fichier ou efface le fichier existant).
  • 'a' — ajout à la fin du fichier (le crée s'il n'existe pas).
  • 'x' — création et écriture ; si le fichier existe déjà, erreur.


Exemple : écrire du texte dans un fichier

<?php$filename = 'test.txt';$file = fopen($filename, 'w') or die('Impossible d\'ouvrir le fichier');$text = "Bonjour le monde !";fwrite($file, $text);fclose($file);echo 'Fichier écrit avec succès';?>

Après l'écriture, fermez toujours le fichier avec la fonction fclose() — cela libère les ressources système.



Lecture d'un fichier ligne par ligne

<?php$file = fopen('test.txt', 'r');while (!feof($file)) {    $line = fgets($file);    echo $line . '<br>';}fclose($file);?>

La fonction feof() vérifie si la fin du fichier est atteinte. fgets() lit une ligne.



Alternatives plus simples

Pour des opérations rapides, PHP propose des fonctions d'encapsulation :

  • file_get_contents($filename) — lit tout le fichier dans une chaîne.
  • file_put_contents($filename, $data) — écrit une chaîne dans un fichier (crée ou écrase).
<?php// Lecture$content = file_get_contents('test.txt');echo $content;

// Écriturefile_put_contents('new.txt', 'Écriture simple');?>


2. Gestion des répertoires : création, suppression, navigation

Travailler avec des dossiers en PHP est presque aussi simple qu'avec des fichiers. Les principales fonctions sont mkdir(), rmdir() et scandir().



Création d'un dossier

<?php$dir = 'uploads';if (!is_dir($dir)) {    mkdir($dir, 0777, true);    echo 'Dossier créé';} else {    echo 'Le dossier existe déjà';}?>

Le paramètre 0777 correspond aux droits d'accès (masque). Le troisième argument true permet de créer récursivement des répertoires imbriqués (par exemple, images/2024/).



Suppression d'un dossier

La fonction rmdir() ne supprime qu'un répertoire vide. S'il contient des fichiers, il faut d'abord le vider :

<?phpfunction removeDir($dir) {    if (!is_dir($dir)) return;    $items = scandir($dir);    foreach ($items as $item) {        if ($item == '.' || $item == '..') continue;        $path = $dir . '/' . $item;        if (is_dir($path)) {            removeDir($path);        } else {            unlink($path);        }    }    rmdir($dir);}removeDir('temp');echo 'Dossier supprimé';?>


Obtenir la liste des fichiers dans un dossier

<?php$files = scandir('uploads');foreach ($files as $file) {    if ($file != '.' && $file != '..') {        echo $file . '<br>';    }}?>


3.

Blogs

Book Recommendations