Introduction : pourquoi savoir travailler avec le système de fichiers en PHP
Tout développeur web rencontre tôt ou tard la nécessité de sauvegarder des données sur le serveur, de télécharger des images, de créer des fichiers temporaires ou de lire des configurations. PHP fournit un ensemble puissant de fonctions pour travailler avec le système de fichiers, permettant d'effectuer toutes ces tâches rapidement et en toute sécurité.
Dans cet article, nous allons passer en revue les opérations les plus demandées : lecture et écriture de fichiers, création et suppression de répertoires, vérification de l'existence d'éléments, ainsi que la gestion des chemins. Tous les exemples sont écrits en PHP et prêts à être utilisés dans vos projets.
Fonctions principales pour travailler avec les fichiers
Commençons par les opérations de base — ouverture, lecture et écriture de fichiers. PHP prend en charge plusieurs façons d'interagir avec les fichiers, et nous allons examiner les plus populaires.
Ouverture et fermeture d'un fichier : fopen et fclose
La fonction fopen() ouvre un fichier et retourne un descripteur pour un travail ultérieur. Les modes d'ouverture déterminent ce que vous pouvez faire avec le fichier : lire (r), écrire (w), ajouter (a), etc.
<?php// Ouvrir un fichier en lecture$file = fopen("data.txt", "r");if ($file) { // Travailler avec le fichier fclose($file); // Toujours fermer} else { echo "Impossible d'ouvrir le fichier";}?>Lecture d'un fichier : fread, fgets, file_get_contents
Pour lire le contenu, vous pouvez utiliser différentes fonctions selon la tâche :
fread()— lit un nombre spécifié d'octets.fgets()— lit une ligne.file_get_contents()— le moyen le plus simple de lire tout le fichier d'un coup.
<?php// Lecture de tout le fichier$content = file_get_contents("example.txt");echo $content;
// Lecture ligne par ligne$file = fopen("example.txt", "r");while (($line = fgets($file)) !== false) { echo $line . "<br>";}fclose($file);?>Écriture dans un fichier : fwrite et file_put_contents
L'écriture de données se fait avec fwrite() (nécessite un descripteur ouvert) ou file_put_contents() (une seule ligne et le fichier est écrit).
<?php// Écriture rapidefile_put_contents("log.txt", "Nouvelle entrée", FILE_APPEND);
// Écriture via fwrite$file = fopen("config.ini", "w");fwrite($file, "db_host=localhost");fwrite($file, "db_user=root");fclose($file);?>Travailler avec les répertoires
La création, la suppression et la navigation dans les dossiers sont une autre partie importante du travail avec le système de fichiers en PHP.
Création et suppression de dossiers : mkdir et rmdir
La fonction mkdir() crée un nouveau répertoire. Le troisième paramètre recursive permet de créer des dossiers imbriqués en une seule commande.
<?php// Créer un dossiermkdir("uploads", 0777);
// Créer des dossiers imbriqués (2025 → 03 → images)mkdir("uploads/2025/03/images", 0777, true);
// Supprimer un dossier vidermdir("uploads/temp");?>Vérification de l'existence des fichiers et dossiers
Avant d'effectuer des opérations, il est toujours utile de vérifier si un fichier ou un répertoire existe. Pour cela, on utilise les fonctions file_exists(), is_file() et is_dir().
<?php$path = "data/config.php";if (file_exists($path)) { echo "Le fichier ou le dossier existe";}if (is_file($path)) { echo "C'est un fichier";}if (is_dir("uploads")) { echo "C'est un répertoire";}?>Obtenir la liste des fichiers dans un répertoire
La fonction scandir() retourne un tableau de tous les éléments d'un dossier. Et glob() permet de filtrer par motif (par exemple, uniquement les images).
<?php// Tous les fichiers et dossiers$items = scandir("uploads");print_r($items);
// Uniquement les fichiers PHP$phpFiles = glob("*.php");for