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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 903 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

Messages postés
13
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
26 juin 2020

Voilà, j'ai essayé et c'est vrai que c'est mieux.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
35
remplacer :
if (!$ouverture) return;
par :
if (!$ouverture) return false;
virer tes @ a la fin, virer ton rename.
Messages postés
13
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
26 juin 2020

bon, bon, ne nous énervons pas, et viking force n'aurais pas mieux exprimé que moi ce que je voulais dire, la preuve, je suis d'accord avec le fond coucou747, mais pas la forme, et je le répète, 10/10 j'ai validé le code sans avoir vu la note, et je vois pas comment y remédier, je mettrais 0 si tu veux, tout ce que je voulais, c'était partager un code qui m'est bien utile en pensant qu'il serait utile à quelqu'un d'autre, c'est tout, si tu veux que je fasse des modifs, je les fais sans broncher illico pour le bonheur de ceux qui l'utiliseront, sans dèc, mais je suis pas un pro, il faut me l'écrire clairement, et je fais. Baltringue va...non je déconne, allez, envois la sauce, je change quoi ?
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
35
l'insulte etait ici :
Commentaire de x31p24 le 22/10/2008 00:18:21
bon je vois que j'ai à faire à des baltringues, précision :

Le 10/10 n'etait pas merite. N'importe qui qui code un minimum en php l'aurais compris en lisant le code, d'ou ma conclusion : il n'a pas lu le code.

mettre 10/10 en disant : "ca marche", je ne vois pas trop l'interret de la chose, au final, on se trouve avec des sources de mauvaise qualite qui sont a 10/10...

viking_force, Quand on fait du rapport d'erreurs pour un projet libre, ou quand on rapporte des "choses louches" dans le code (comme je le fais ici), on ne se prend pas autant d'insultes... En general, les gens sont contents qu'on leur explique ce qui ne va pas dans leur code.
Messages postés
31
Date d'inscription
lundi 14 février 2005
Statut
Membre
Dernière intervention
29 octobre 2008

salut tlm,

je reviens pas sur le code....juste un petit com sur le comportement...

Coucou747, c'est pas la 1er fois que je remarque que tes propos (même s'il sont utiles) sont dit sur un ton qui semble être agressif, autaint, méprisant...Ca peut être très mal pris et donc générer de l'agressivité dans les réponses (mais a voir tu t'en tape de ça)

Pourquoi l'autre a mis 10 a sa source ?? et alors ? il a le droit d'y mettre 10 s'il a envie non ?? il a surement une bonne raison de le faire...

>>qqn note 10 sans meme lire le code

et bé, t'es dieu sur terre pour tout savoir ainsi ?? comment tu peut te permettre de dire qu'il ne l'a pas lu ?

et entre ton com du 22/10/2008 et du 29/10/2008 tu peux me dire où il t'insulte ???
(ouais enfin perso si tu m'insultes comme ca, jvais pas t'aider longtemps... )

J'ai pas grand chose contre toi, car il est vrai que tu apporte bcp a ce site, mais des fois tu "aide" les gens d'une manière qui énerve et qui te fait passer pour qq1 que tu n'est peut être pas (un gros con méprisant)

Alors il se peux que tu soit stressé a cause de ton entourage, mais nous on est pas au courant, et très franchement, ça motive pas de lire des com qui ne servent a rien a part être méprisant (ce qui incite les autre a être agressif)

La manière de le dire importe beacoup....sur ce le prend pas mal, tout comme les erreur de prog faut savoir reconnaitre ses erreurs de comportement, y'a que comme ça qu'on progresse.... :)
Afficher les 16 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.