0Pricing
PHP Academy · Leçon

Travailler avec les répertoires

Lister, créer et supprimer des répertoires avec scandir et mkdir.

Travailler avec les répertoires est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 3 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.

Opérations sur les répertoires en PHP

PHP fournit des fonctions pour lister, créer, parcourir et supprimer des répertoires sur le serveur :

  • scandir() — lister le contenu d'un répertoire
  • mkdir() — créer un répertoire
  • rmdir() — supprimer un répertoire vide
  • glob() — trouver les fichiers correspondant à un motif

scandir()

Lister tous les fichiers et répertoires d'un répertoire :

<?php
$entries = scandir('/var/www/html/uploads');

// scandir includes '.' and '..'
$entries = array_diff($entries, ['.', '..']);

foreach ($entries as $entry) {
    echo $entry . PHP_EOL;
}

Recherche par motif avec glob()

glob() renvoie les fichiers correspondant à un motif de type interpréteur de commandes :

<?php
// Find all PHP files in a directory
$phpFiles = glob('/var/www/html/*.php');

// Recursively with GLOB_BRACE
$logs = glob('/var/log/{app,error,access}.log', GLOB_BRACE);

foreach ($phpFiles as $file) {
    echo basename($file) . PHP_EOL;
}

mkdir() et autorisations

Créez un ou plusieurs répertoires imbriqués :

<?php
$dir = '/var/www/uploads/2024/05';

// Create nested directories in one call:
if (!is_dir($dir)) {
    mkdir($dir, 0755, true);  // true = recursive
    echo "Created: $dir";
}

Supprimer des répertoires

rmdir() ne supprime que les répertoires vides. Pour supprimer un répertoire contenant des éléments, utilisez une fonction récursive :

<?php
function deleteDir(string $path): void {
    foreach (scandir($path) as $entry) {
        if ($entry === '.' || $entry === '..') continue;
        $full = $path . DIRECTORY_SEPARATOR . $entry;
        is_dir($full) ? deleteDir($full) : unlink($full);
    }
    rmdir($path);
}

deleteDir('/tmp/old_cache');

Parcourir un répertoire avec DirectoryIterator

La méthode OO pour parcourir le contenu d'un répertoire :

<?php
$dir = new DirectoryIterator('/var/www/html/images');

foreach ($dir as $info) {
    if ($info->isDot()) continue;
    echo $info->getFilename();
    echo ' (' . $info->getSize() . ' bytes)';
    echo PHP_EOL;
}

RecursiveDirectoryIterator

Parcourir récursivement tous les fichiers d'une arborescence de répertoires :

<?php
$iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator('/var/www/src')
);

foreach ($iterator as $file) {
    if ($file->isDot()) continue;
    if ($file->getExtension() === 'php') {
        echo $file->getPathname() . PHP_EOL;
    }
}

getcwd et chdir

Obtenir et modifier le répertoire de travail actuel :

<?php
$originalDir = getcwd();
echo 'Current: ' . $originalDir . PHP_EOL;

chdir('/var/www/html');
echo 'Changed to: ' . getcwd() . PHP_EOL;

// Restore
chdir($originalDir);
echo 'Restored: ' . getcwd() . PHP_EOL;

Manipulation des chemins

Construisez et analysez les chemins de fichiers avec des constantes et des fonctions portables :

<?php
// DIRECTORY_SEPARATOR = '/' on Unix, '\\' on Windows
$base    = '/var/www/app';
$subPath = 'uploads' . DIRECTORY_SEPARATOR . 'images';
$full    = $base . DIRECTORY_SEPARATOR . $subPath;

echo realpath($full);  // resolves symlinks

// __DIR__ is the directory of the current file
$configPath = __DIR__ . '/../config/settings.json';
echo realpath($configPath);

Espace disque

Vérifiez l'espace disque disponible et total :

<?php
$path = '/var/www';

$free  = disk_free_space($path);
$total = disk_total_space($path);
$used  = $total - $free;

echo 'Used: ' . round($used / 1024**3, 2) . ' GB';
echo 'Free: ' . round($free / 1024**3, 2) . ' GB';
echo 'Total: ' . round($total / 1024**3, 2) . ' GB';

Répertoire temporaire SPL

Utilisez toujours sys_get_temp_dir() pour trouver le bon répertoire temporaire sur toutes les plateformes :

<?php
$tmpDir = sys_get_temp_dir();
echo 'Temp dir: ' . $tmpDir;

// Create a unique temporary directory
$uniqueDir = $tmpDir . DIRECTORY_SEPARATOR . 'myapp_' . uniqid();
mkdir($uniqueDir, 0700);

// ... use directory ...
// cleanup when done

Vérification rapide

Quelle fonction PHP crée récursivement des répertoires imbriqués en un seul appel ?

Récapitulatif : travailler avec les répertoires

Opérations sur les répertoires :

  • scandir() — lister le contenu (y compris . et ..)
  • glob() — trouver des fichiers par motif
  • mkdir($path, 0755, true) — création récursive
  • rmdir() — supprimer un répertoire vide
  • RecursiveDirectoryIterator pour parcourir une arborescence en profondeur
  • __DIR__ et DIRECTORY_SEPARATOR pour des chemins portables

Questions Fréquemment Posées

La leçon « Travailler avec les répertoires » est-elle gratuite ?

Oui — le texte complet de « Travailler avec les répertoires » 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 « Travailler avec les répertoires » ?

Lister, créer et supprimer des répertoires avec scandir et mkdir. 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 3 sur 4.

Combien de temps prend la leçon « Travailler avec les répertoires » ?

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