0Pricing
PHP Academy · Leçon

Écrire dans des fichiers et y ajouter du contenu

Écrire des données dans des fichiers avec file_put_contents et FILE_APPEND.

Écrire dans des fichiers et y ajouter du contenu est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PHP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PHP Academy comprend 4 leçons au total.

Écrire dans des fichiers en PHP

PHP fournit plusieurs façons d'écrire dans des fichiers :

  • file_put_contents() — écrire une chaîne dans un fichier en un seul appel
  • fopen() + fwrite() — écriture sous forme de flux
  • Utiliser l'indicateur FILE_APPEND pour ajouter du contenu au lieu de l'écraser

file_put_contents()

Écrire une chaîne dans un fichier : le fichier est créé s'il n'existe pas et écrasé s'il existe :

<?php
$data = "Hello, PHP!\nThis is line 2.\n";

$bytes = file_put_contents('/tmp/output.txt', $data);

if ($bytes === false) {
    echo 'Failed to write';
} else {
    echo "Wrote $bytes bytes";
}

Ajouter avec FILE_APPEND

Ajoutez du contenu à la fin d'un fichier existant avec l'indicateur FILE_APPEND :

<?php
$logEntry = date('Y-m-d H:i:s') . ' - User logged in' . PHP_EOL;

file_put_contents(
    '/var/log/app.log',
    $logEntry,
    FILE_APPEND | LOCK_EX  // append + exclusive lock
);

Modes d'écriture de fopen

Les modes d'ouverture de fopen déterminent la manière dont le fichier est ouvert :

  • 'w' — écrire, réduire la longueur à zéro ou créer le fichier
  • 'a' — écrire, ajouter à la fin, créer si le fichier n'existe pas
  • 'x' — écrire, échouer si le fichier existe déjà
  • 'r+' — lire et écrire depuis le début, le fichier doit exister

fopen + fwrite

Écriture sous forme de flux pour un contrôle précis :

<?php
$handle = fopen('/tmp/report.txt', 'w');

if ($handle === false) die('Cannot open file');

fwrite($handle, "Report generated: " . date('Y-m-d') . "\n");
fwrite($handle, str_repeat('-', 40) . "\n");
fwrite($handle, "Total: 1234\n");

fclose($handle);
echo 'Report written';

Écrire des fichiers CSV

Utilisez fputcsv() pour écrire des lignes CSV correctement formatées :

<?php
$rows = [
    ['Name', 'Email', 'Score'],
    ['Alice', 'alice@test.com', 95],
    ['Bob',   'bob@test.com',   87],
];

$handle = fopen('/tmp/results.csv', 'w');
foreach ($rows as $row) {
    fputcsv($handle, $row);
}
fclose($handle);

Écrire des fichiers JSON

Sérialisez les données PHP en JSON et écrivez-les dans un fichier :

<?php
$config = [
    'version' => '2.0',
    'debug'   => false,
    'db'      => ['host' => 'localhost', 'port' => 3306],
];

$json = json_encode($config, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
file_put_contents('/app/config.json', $json);

echo 'Config saved';

Écritures atomiques de fichiers

Écrivez dans un fichier temporaire, puis renommez-le pour effectuer des mises à jour atomiques (sûres en cas de plantage) :

<?php
$target  = '/app/data.json';
$tmpFile = $target . '.tmp.' . uniqid();

$data = json_encode(['ts' => time(), 'value' => 42]);

file_put_contents($tmpFile, $data, LOCK_EX);
rename($tmpFile, $target);  // atomic on most OSes

echo 'File updated atomically';

Autorisations et propriété

Définissez les autorisations du fichier après sa création avec chmod() :

<?php
$path = '/var/www/uploads/avatar.jpg';

// Copy uploaded temp file to destination
move_uploaded_file($_FILES['avatar']['tmp_name'], $path);

// Set permissions (owner read/write, group read, world read)
chmod($path, 0644);

echo 'File uploaded and permissions set';

Fichiers temporaires

Créez des fichiers temporaires en toute sécurité avec tempnam() ou tmpfile() :

<?php
// Create a named temp file
$tmpPath = tempnam(sys_get_temp_dir(), 'php_');
file_put_contents($tmpPath, 'temp data');
$content = file_get_contents($tmpPath);
unlink($tmpPath);  // delete when done

// Anonymous temp file handle
$tmp = tmpfile();
fwrite($tmp, 'anonymous temp');
// auto-deleted when $tmp is garbage collected

Copier et déplacer des fichiers

Copiez et renommez ou déplacez des fichiers avec les fonctions intégrées :

<?php
// Copy a file
copy('/src/template.html', '/dst/page.html');

// Move / rename
rename('/tmp/upload_abc', '/storage/images/photo.jpg');

// Delete
unlink('/tmp/old_file.txt');

// Check if file was copied successfully
if (copy('a.txt', 'backup.txt')) {
    echo 'Backup created';
}

Vérification rapide

Quel indicateur devez-vous transmettre à file_put_contents() pour ajouter du contenu à la fin d'un fichier au lieu de l'écraser ?

Récapitulatif : écriture des fichiers

Les bases de l'écriture des fichiers :

  • file_put_contents() — méthode la plus simple pour écrire ou écraser
  • Indicateur FILE_APPEND pour ajouter à la fin
  • fopen('a', ...) + fwrite() pour l'écriture en flux
  • fputcsv() pour produire du CSV
  • Écritures atomiques : écrire dans un fichier temporaire + rename()
  • chmod() pour définir les autorisations après la création

Questions Fréquemment Posées

La leçon « Écrire dans des fichiers et y ajouter du contenu » est-elle gratuite ?

Oui — le texte complet de « Écrire dans des fichiers et y ajouter du contenu » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PHP Academy, passe à CoddyKit PRO. Le cours PHP Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Écrire dans des fichiers et y ajouter du contenu » ?

Écrire des données dans des fichiers avec file_put_contents et FILE_APPEND. Tu pratiques PHP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer PHP Academy ?

Aucune expérience préalable n'est requise. PHP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Écrire dans des fichiers et y ajouter du contenu » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon PHP Academy ?

Oui. Chaque leçon PHP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Lire des fichiers avec PHP
  2. Écrire dans des fichiers et y ajouter du contenu
  3. Travailler avec les répertoires
  4. Gérer les téléversements de fichiers
← Retour à PHP Academy