Chapitre 14 : Manipulation de fichiers

Apprenez à lire, écrire, modifier et supprimer des fichiers avec PHP. Un guide complet pour manipuler le système de fichiers.

1. Introduction

PHP permet de manipuler facilement les fichiers présents sur le serveur : lire, écrire, créer, modifier ou supprimer. Ces opérations sont couramment utilisées pour créer des journaux, stocker des données temporaires ou traiter des fichiers uploadés.

2. Ouvrir un fichier avec fopen()

Avant de lire ou écrire, vous devez ouvrir un fichier :

<?php
$handle = fopen("donnees.txt", "r"); // r = lecture seule
?>

Les modes possibles :

  • "r" : lecture seule
  • "w" : écriture (vide le fichier s'il existe)
  • "a" : écriture (ajoute à la fin)
  • "x" : crée un fichier (erreur s'il existe déjà)
  • "r+" : lecture + écriture

3. Lire un fichier

Voici plusieurs façons de lire un fichier en PHP :

Ligne par ligne

<?php
$handle = fopen("donnees.txt", "r");
while (!feof($handle)) {
  echo fgets($handle) . "<br>";
}
fclose($handle);
?>

Tout le contenu d'un coup

<?php
$contenu = file_get_contents("donnees.txt");
echo $contenu;
?>

4. Écrire dans un fichier

Remplacer le contenu existant

<?php
file_put_contents("nouveau.txt", "Bonjour monde !");
?>

Ajouter du texte à la fin

<?php
file_put_contents("log.txt", "Nouvelle ligne\n", FILE_APPEND);
?>

Avec fwrite()

<?php
$handle = fopen("donnees.txt", "a");
fwrite($handle, "Ligne ajoutée\n");
fclose($handle);
?>

5. Supprimer un fichier

<?php
unlink("ancien.txt");
?>
Attention : La fonction unlink() supprime un fichier de manière irréversible.

6. Fonctions utiles

  • file_exists($fichier) – Vérifie si le fichier existe
  • is_readable($fichier) – Vérifie si le fichier est lisible
  • is_writable($fichier) – Vérifie si on peut écrire dedans
  • filesize($fichier) – Renvoie la taille en octets
  • rename($ancien, $nouveau) – Renomme ou déplace un fichier

7. Exemple pratique

Créer un formulaire qui permet à l'utilisateur d'écrire un message dans un fichier :

HTML

<form method="post">
  <textarea name="message"></textarea>
  <button type="submit">Enregistrer</button>
</form>

PHP

<?php
if (!empty($_POST["message"])) {
  $message = htmlspecialchars($_POST["message"]);
  file_put_contents("messages.txt", $message . "\n", FILE_APPEND);
  echo "Message sauvegardé.";
}
?>

8. Exercices proposés

  1. Créer un formulaire qui ajoute une ligne dans un fichier texte.
  2. Afficher le contenu d'un fichier ligne par ligne.
  3. Créer un système de journalisation (log) avec date/heure.
  4. Écrire un script qui supprime un fichier via un bouton.

9. À retenir

  • PHP permet de lire, écrire, supprimer et tester des fichiers.
  • fopen() + fread() / fwrite() permettent un contrôle fin.
  • file_get_contents() et file_put_contents() sont simples à utiliser.
  • Bien vérifier les droits d'écriture du dossier sur le serveur.

10. Ce que vous apprendrez ensuite

Dans le chapitre 15, vous découvrirez la programmation orientée objet (POO) avec PHP. Vous apprendrez à structurer votre code avec des classes, objets, constructeurs, propriétés et méthodes.