Effacer récursivement un répertoire

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 674 fois - Téléchargée 30 fois

Contenu du snippet

Cette fonction permet d'effacer un répertoire présent sur votre serveur avec tout ce qui se trouve à l'intérieur (y compris les sous-répertoires)

Source / Exemple :


<?php
function rdel($path, $deldir = true) {
        // $path est le chemin relatif au fichier php
        // $deldir (paramètre optionel, par défaut à vrai) permet de dire si vous souhaitez supprimer le répertoire (vrai) ou le vider uniquement (faux)

        // on vérifie d'abord que le nom du repertoire contient "/" à la fin, sinon on le lui rajoute
        if ($path[strlen($path)-1] != "/")
                $path .= "/";

        if (is_dir($path)) {
                $d = opendir($path);

                while ($f = readdir($d)) {
                        if ($f != "." && $f != "..") {
                                $rf = $path . $f; // chemin relatif au fichier php

                                if (is_dir($rf)) // si c'est un répertoire on appel récursivement la fonction
                                        rdel($rf);
                                else // sinon on efface le fichier
                                        unlink($rf);
                        }
                }
                closedir($d);

                if ($deldir) // si $deldir est vrai on efface le répertoire
                        rmdir($path);
        }
        else {
                unlink($path);
        }
}
?>

Conclusion :


Attention, il est possible que sous Windows il faille modifier le code pour les délimiteurs de répertoire, remplacez alors les "/" par des "\\"

A voir également

Ajouter un commentaire Commentaires
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
42
salut, tu ne vérifie pas les droits, donc, la sortie de unlink peut être false, donc, tu n'est pas sur que ton fichier soit suprimé... (auquel cas, renvoyer false et stoper la supression...)
Messages postés
23
Date d'inscription
samedi 12 avril 2003
Statut
Membre
Dernière intervention
7 novembre 2004

ça marche très bien. (même si j'ai pa tt compris en détail :p)
Je mets 9.
Messages postés
1
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
26 août 2003

q? ->est-ce que on peut faire une suppression sélective
style que les fichiers txt ?
merci
Messages postés
25
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
12 août 2003

"exec ("rm -Rf monrepertoire");"
sur un hebergement windows, ou quand la fonction est interdit, sa doit bien marché dis donc ...

"Ptet pas nivo 3 qd mm"
kel genre de code serai nivo 3 ? car on ma dit pareil et je vois pas de source plus compliquer que ce que je vois ..
Messages postés
3
Date d'inscription
vendredi 10 janvier 2003
Statut
Membre
Dernière intervention
16 janvier 2003

Plus simple encore : exec ("rm -Rf monrepertoire");
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.