La notice de php.net nous donne ceci à propos de la fonction rmdir, qui est chargée de supprimer les dossiers :
[quote]Tente d'effacer le dossier dont le chemin est dirname . Le dossier doit être vide, et le script doit avoir les autorisations adéquates.[/quote]
Ainsi, si vous souhaitez supprimer un dossier, il suffit de faire :
[code=php]<?php rmdir('nom-dossier') ; ?>[/code]
Néanmoins, il n'est pas possible de supprimer un dossier si celui-ci contient des fichiers (même des fichiers cachés).
En effet, lorsque vous tentez d'effacer un dossier en PHP, il peut arriver que vous rencontriez l'erreur suivante:
Warning: rmdir(..): Directory not empty
Voici donc un petit code pour supprimer un dossier et tout ce qu'il contient ( autre dossiers, fichiers.. ).
[code=php]<?php
function rmdir_all($filepath)
{
if (is_dir($filepath) && !is_link($filepath))
{
if ($dh = opendir($filepath))
{
while (($sf = readdir($dh)) !== false)
{
if ($sf == '.' || $sf == '..')
{
continue;
}
if (!rm_recursive($filepath.'/'.$sf))
{
throw new Exception("$filepath $sf n'a pas pu être supprimé.");
}
}
closedir($dh);
}
return rmdir($filepath);
}
return unlink($filepath);
}?>[/code]
Pour utiliser cette fonction, il suffit de l'appeller :
[code=php]<?php rmdir_all('nom-dossier'); ?>[/code]
Les lecteurs ont donné une note moyenne de :
Note: 1 sur 10
Donnez votre note à ce tuto sur 10 :