Effacer un répertoire et son contenu, fichiers et sous répertoires

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 519 fois - Téléchargée 218 fois

Contenu du snippet

Tout d'abord, ce script n'est pas de moi, je l'avais demandé dans le forum de comment ça marche et un certains bibou1324 ma l'avait posté :
http://www.commentcamarche.net/forum/affich-3601689-php-suppression-repertoire?#13
J'ai tellement galéré avec des fichiers et des répertoires récalcitrants, des htaccess qui font ch...
Et comme je sais que je ne suis pas le seul, et que ce code pourtant simple est très difficile à trouver, le voilà !
Pour l'utiliser :
- L'ouvrir avec votre éditeur préféré (moi c'est notepad++) et le sauver sur votre disque dur efface.php par exemple
- mettre à la deuxième ligne entre les guillemets le nom du répertoire à effacer
- si votre répertoire à effacer à l'adresse http://monsite.free.fr/répertoire à effacer, l'envoyer au répertoire juste avant c'est à dire : http://monsite.free.fr
- et le lancer sur votre navigateur préféré par : http://monsite.free.fr/efface.php
- c'est effacé, chez free, apparaitra un nouveau répertoire à la place : trash, qui est vide. Chez free impossible d'effacer un répertoire en php donc le script le renomme, mais il est vide.
        • ATTENTION **** ça efface vraiment tout ce qu'il y a dans le répertoire !

Je sais, c'est détaillé, c'est pour les débutants comme moi qui ont besoin de détails.

Source / Exemple :


<?php
$a_del = "essai";  // <- nom du répertoire à effacer

clearDir($a_del);
function clearDir($dossier) {
	$ouverture=opendir($dossier);
	if (!$ouverture) return false;
	while($fichier=readdir($ouverture)) {
		if ($fichier == '.' || $fichier == '..') continue;
			if (is_dir($dossier."/".$fichier)) {
				$r=clearDir($dossier."/".$fichier);
				if (!$r) return false;
			}
			else {
				$r=unlink($dossier."/".$fichier);
				if (!$r) return false;
			}
	}
closedir($ouverture);
$r=rmdir($dossier);
rename($dossier,"trash");
return true;
}
?>

Conclusion :


Indispensable, je l'ai toujours sous la main, j'essaye beaucoup de scripts....

A voir également

Ajouter un commentaire

Commentaires

coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
28 -
tu devrais ajouter une verification en cas d'erreur.
webdeb
Messages postés
509
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
2 -
Si des fois on a accès à l'éxécution de commandes Shell, l'idéal est de faire :

<?php

if (file_exists('/path/to/mon/repertoire'))
{
exec('rm -rf /path/to/mon/repertoire');
}

?>

++
cs_guismo1er
Messages postés
76
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
12 mars 2009
-
très bien!
cs_guismo1er
Messages postés
76
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
12 mars 2009
-
10/10
coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
28 -
pourquoi t'as mis 10 ?

tu mets souvent 10 a un code qu'on a vu 100 fois et qui est de mauvaise qualite ?

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.