32 votes

PHP : Le moyen le plus simple de supprimer un dossier (y compris son contenu)

El rmdir() échoue si le dossier contient des fichiers. Je peux parcourir en boucle tous les fichiers du répertoire avec quelque chose comme ceci :

foreach (scandir($dir) as $item) {
    if ($item == '.' || $item == '..') continue;
    unlink($dir.DIRECTORY_SEPARATOR.$item);
}
rmdir($dir);

Y a-t-il un moyen de tout supprimer d'un coup ?

61voto

Yuriy Points 381

rrmdir() -- supprimer récursivement des répertoires :

function rrmdir($dir) { 
  foreach(glob($dir . '/*') as $file) { 
    if(is_dir($file)) rrmdir($file); else unlink($file); 
  } rmdir($dir); 
}

47voto

chaos Points 69029

Eh bien, il y a toujours

system('/bin/rm -rf ' . escapeshellarg($dir));

si disponible.

2voto

Kevin Boyd Points 4552

Conformément à este source ;

Gagnez du temps, si vous voulez nettoyer un répertoire ou le supprimer et que vous êtes sous Windows.

Utilisez ceci :

    chdir ($file_system_path);
    exec ("del *.* /s /q");

Vous pouvez utiliser une autre syntaxe DEL, ou tout autre utilitaire shell. Il se peut que vous deviez autoriser le service à interagir avec le bureau, car c'est ma configuration actuelle et je ne la changerai pas pour tester ceci.

Sinon, vous pourriez trouver une méthode alternative ici.

1voto

Ravinder Singh Points 1394

Essayez ceci :

exec('rm -rf '.$user\_dir);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X