par anonyme 03-Décembre-2020

Comment faire pour supprimer le contenu d'un répertoire en PHP ?

2 Réponses

par Antoine 03-Décembre-2020

Pour supprimer le contenu d'un répertoire, en PHP, tout en supprimant uniquement les fichiers, mais pas les sous-dossiers, ni leurs contenus, vous pouvez procédez comme suit :

  • Récupérer les chemins d'accès vers tous les fichiers via la fonction PHP glob().
  • Parcourir la liste des fichiers avec une boucle foreach.
  • Vérifier si les fichiers sont valides avec la fonction is_file().
  • Supprimer les fichiers via la fonction unlink().

Exemple de script PHP pour supprimer uniquement les fichiers contenus dans un répertoire :

<?php 
$repertoire = "test"; 
$fichiers = glob($repertoire.'/*');  
foreach($fichiers as $fichier) 
{ 
if(is_file($fichier))
{
unlink($fichier);
} 
}
?>
par Antoine 03-Décembre-2020

Si vous voulez supprimer tous les fichiers du répertoire et de ses sous-répertoires, sans supprimer l'arborescence des dossiers, en PHP, procédez comme suit :

<?php 
$repertoire = "test/"; 
$repertoire = new RecursiveDirectoryIterator($repertoire, FilesystemIterator::SKIP_DOTS); 
$repertoire = new RecursiveIteratorIterator($repertoire, RecursiveIteratorIterator::CHILD_FIRST); 
foreach ($repertoire as $fichier) 
{ 
if (!is_dir($fichier))
{
unlink($fichier);
}
} 
?> 

Et si vous voulez supprimer tout le contenu du répertoire, sans aucune distinction :

<?php 
$repertoire = "test/"; 
$repertoire = new RecursiveDirectoryIterator($repertoire, FilesystemIterator::SKIP_DOTS); 
$repertoire = new RecursiveIteratorIterator($repertoire, RecursiveIteratorIterator::CHILD_FIRST); 
foreach ($repertoire as $fichier) 
{ 
if (is_dir($fichier))
{
rmdir($fichier);
}
else if (!is_dir($fichier))
{
unlink($fichier);
}
} 
?> 

Questions liées

2 réponses
1 réponse
2 réponses
1 réponse
1 réponse
1 réponse
posée par anonyme 27-Septembre-2020
1 réponse
posée par anonyme 27-Aout-2020
Bienvenue sur 1FORMATIK, où vous pouvez poser des questions en lien avec l'informatique et internet, et recevoir des réponses d'Antoine et d'autres internautes.

2.6k questions

3k réponses

...