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épertoiremkdir()— créer un répertoirermdir()— supprimer un répertoire videglob()— 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 doneVé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 motifmkdir($path, 0755, true)— création récursivermdir()— supprimer un répertoire vide- RecursiveDirectoryIterator pour parcourir une arborescence en profondeur
__DIR__etDIRECTORY_SEPARATORpour 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
- Lire des fichiers avec PHP
- Écrire dans des fichiers et y ajouter du contenu
- Travailler avec les répertoires
- Gérer les téléversements de fichiers