begin process at 2010 03 21 19:25:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > EFFACER UN RÉPERTOIRE ET SON CONTENU, FICHIERS ET SOUS RÉPERTOIRES

EFFACER UN RÉPERTOIRE ET SON CONTENU, FICHIERS ET SOUS RÉPERTOIRES


 Information sur la source

Note :
5,5 / 10 - par 2 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Classé sous :effacer, répertoires, contenu, tout, php Niveau :Débutant Date de création :19/10/2008 Date de mise à jour :30/10/2008 18:19:03 Vu :3 838

Auteur : x31p24

Ecrire un message privé
Site perso
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

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-3601 689-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

  • <?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;
  • }
  • ?>
<?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....


 Historique

19 octobre 2008 00:30:26 :
erreur de manip
30 octobre 2008 14:18:59 :
maintenant efface le répertoire même chez free, merci coucou747
30 octobre 2008 18:19:03 :
je supprime le zip qui est inutil tellement le code est court

 Sources de la même categorie

Source avec une capture PAGINATION EN PHP par Orangina
Source avec Zip POO - DEBUGGER par DiGhan
Source avec Zip CRAWLER DE SITE EN PHP par Mcjo
DÉCOUPAGE D'UN TEXTE EN FONCTION DES SAUTS DE LIGNES par biloubil
RÉCUPÉRER LE CHEMIN RELATIF D'UN OBJET PAR RAPPORT À LA RACI... par FredPsy

 Sources en rapport avec celle ci

Source avec Zip AJOUT D'UN RENDEZ-VOUS DANS UN CALENDRIER EXCHANGE 2003 par SachaWolf
Source avec Zip GÉNÉRATEUR DE BALISE META KEYWORDS par ParseError
Source avec Zip CHARGER DES DONNÉES DEPUIS UN FICHIER TXT DANS UNE BASE DE D... par ig3
AJOUTER UN ARRIÈRE PLAN SUR UNE IMAGE par digitaldax
Source avec Zip Source avec une capture [PHP]WEBFTP par Liouan

Commentaires et avis

Commentaire de coucou747 le 19/10/2008 16:48:45

tu devrais ajouter une verification en cas d'erreur.

Commentaire de webdeb le 20/10/2008 09:05:25

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');
}

?>

++

Commentaire de guismo1er le 21/10/2008 22:44:50

très bien!

Commentaire de guismo1er le 21/10/2008 22:45:14 10/10

10/10

Commentaire de coucou747 le 21/10/2008 22:47:54

pourquoi t'as mis 10 ?

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

Commentaire de coucou747 le 21/10/2008 22:49:08

# $r=@rmdir($dossier);
# @rename($dossier,"trash"); // renomme le répertoire à effacer en trash, qui est vide

euh... une fois supprime, le renommer ne PEUT pas fonctionner...

Commentaire de x31p24 le 22/10/2008 00:18:21

bon je vois que j'ai à faire à des baltringues, précision :
1- je voulais un code qui MARCHE, peut m'importe si c'est mal codé, en plus il n'est pas de moi
2- pour le shell chez free, je doute que ça marche
3- je n'ai pas mis 10, j'ai même pas vu qu'il fallait noter
4- "un code qu'on a vu 100 fois", tes marrant, ça fait des mois que je parcours le web pour en trouver un qui MARCHE, avec les explications NECESSAIRES, sans trouver, si tu as des liens, envois ils seront les bienvenues
5- et enfin, chez free, le script ne supprime pas mais renomme, chez olympe-network, il supprime
voilà, j'ajoute qu'en parcourant divers forums, j'ai vu que beaucoup de personnes avaient des problème pour effacer un htaccess ou des répertoires non vides, ce script apporte la solution, je l'ai testé chez 2 herbergeurs : free et olympe network
Une amélioration utile serait de lister les répertoires et de pouvoir supprimer en cliquant dessus, mais je sais pas faire. Je vais potasser ça...

Commentaire de coucou747 le 22/10/2008 00:40:08 1/10

un code qui marche, c'est un minimum.
un code qui soit joli, c'est mieux.
http://www.google.fr/search?q=supprimer+repertoire+php
1 260 000 reponses
http://www.google.fr/search?hl=fr&q=supprimer+repertoire+php+site%3Aphpcs.com
10 700 reponses

moi ce que je remarque, c'est que :
tu t'en fous de faire de la merde
quand on tente de t'aider (oui, lister les erreurs, c'est t'aider) tu nous insultes
qqn note 10 sans meme lire le code (le code ne vaut pas 10)

donc on fait quoi maintenant ? on s'insulte jusqu'a ce qu'un moderateur arrive ? ou on calme le jeu en tentant d'ameliorer ton script, dans la joi et la bonhumeur ?

Commentaire de nicomilville le 28/10/2008 14:31:20

Salut,

Je ne vois pas de baltringue ici, si c'est de coucou747 que tu parle, je doute qu'il en soit une car coucou747 apporte beaucoup de choses a codes sources et aide beaucoup de personnes donc le traité de baltringue est très malvenue car : 1 - ça ne se fait pas. 2 - Regarde a qui tu as a faire !

Maintenant passons au code, déja c'est sur qu'il ne vaut pas 10/10 !

Déja un bon code doit donné un résultat a peut près équivalent sur tout les hébergeurs, la ce n'est pas le cas, sur l'un il supprime le dossier et sur l'autre il ne le supprime pas donc ce point a revoir.

Pourquoi cache tu les erreurs, il serai plus judicieux de les gèrer, par exemple enlève le "@" devant les fonction et soit :

- tu attribut un nombre a une variable $error et grace a une fonction error qui gère les différent nombre possible dans cette variable et qui détermine l'erreur !

- tu met un "or die('erreur et cause');"

Voila donc j'attend de voir la suite pour noter...

Bonne chance et a++

Commentaire de x31p24 le 28/10/2008 21:17:15

je rappels quand même :
-le but c'est de pouvoir vider un répertoire impossible à vider même en ftp, j'ai eu ce problème sur olympe, j'avais un htaccess sans pouvoir l'effacer même en ftp (j'avais essayé 3 clients ftp), c'est peut être pas parfait mais ça marche.
-De plus, vider un répertoire qui contient beaucoup de fichiers c'est long en ftp, là, c'est immédiat ou presque.

Avec ce script et le script de zip dezip distant de phpconcept, j'ai 2 outils indispensables pour faire du site internet sur des serveurs gratuits genre free et olympe.
Ce qui serait intéressant c'est de regrouper ces 2 outils en 1 seul, à mon avis complémentaire d'un client ftp, envoyer des milliers de fichiers est hasardeux et long alors qu'un gros fichier zipé ça passe mieux. Voilà, maintenant je veux bien modifier ce script, mais tel quel il me convient très bien, et comme je ne suis pas un caïd du php, faudra m'aider...

Commentaire de coucou747 le 29/10/2008 01:07:53

ouais enfin perso si tu m'insultes comme ca, jvais pas t'aider longtemps...


surtout que lister tes erreurs, ca devrait t'aider...

Commentaire de viking_force le 29/10/2008 11:24:10

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.... :)

Commentaire de coucou747 le 29/10/2008 11:38:29

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.

Commentaire de x31p24 le 30/10/2008 01:45:17

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 ?

Commentaire de coucou747 le 30/10/2008 12:34:29

remplacer :
if (!$ouverture) return;
par :
if (!$ouverture) return false;
virer tes @ a la fin, virer ton rename.

Commentaire de x31p24 le 30/10/2008 14:22:58

Voilà, j'ai essayé et c'est vrai que c'est mieux.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

trouver le contenu d'une variable js en php ? [ par Arkko ] bonjour ... est ce quelqu'un connais le moyen de trouver le contenu d'une variable js en php ? (sans se servir des cookies) Récupération du contenu d'une table Mysql en PHP [ par BSide ] Bonjour,dans ma table TABLE se trouvent 3 champs C1, C2 et C3 que je renseigne par un formulaire + INSERT INTO etc.Actuellement se trouvent dans TABLE Comment afficher le contenu d'un fichier texte dans une page? [ par truckracing ] Bonjour. Je débute tout juste dans le PHP, et j'ai déjà un pb...Je suis en train de traduire mon site (www.coursesdecamions.com) en anglais, et j'ai d Tableau HTML et PHP [ par blob54 ] Salut à tous, Je voulais savoir si c'était possible de récupérer le contenu d'une case d'un tableau HTML dans une variable PHP ?Par exemple, récupére lister le contenu d'un caddie en php [ par imane7381 ] bonjour c'est imaneje suis entrain de developper une application de e_commerce en php et je veux savoir comment lister le contenu d'un caddie Effacer contenu d'un champ [ par vernoff ] Salut j'ai cr&#233;&#233; des champs dans lesquels je pourrai inscrire pseudo et mot de passe et j'aimerais que lorsque l'on clic sur le champs, le te Récupération contenu d'un fichier [ par repier ] Bonjour,Je souhaiterais recuperer le contenu d'un fichier php (du type fichier.php?val=toto) dans une variable,&nbsp;&#224; partir d'un script php mai Destination d'un formulaire [ par pledoux ] Bonjour,Voici mon probl&#232;me j'ai mon &#233;cran divis&#233; en deux par un frameset avec une frame nomm&#233;e sommaire et une nomm&#233;e contenu Problème : include et répertoires [ par nisaloncaje ] Bonjour j'ai un petit probl&#232;me en php et j'aimerais que vous m'aidiez :Voici mon probl&#232;meJ'ai sur mon site plusieurs r&#233;pertoires dont d effacer une image d'un serveur par php [ par astro58 ] bonjour,j'aimerai savoir s'il existe une fonction php pour effacer une image d'un serveur à distance dans une partie admin d'un site. Je sais les uplo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales