IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Effacer un répertoire et son contenu


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 137
    Points : 92
    Points
    92
    Par défaut Effacer un répertoire et son contenu
    Bonjour à tous,

    Voici la fonction que l utilise cependant elle n'a marché qu une fois et je comprend pas pourquoi elle ne fonctionne plus. je suis en local sous win xp.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?php
    function clearDir($dossier) 
    {
    	$ouverture=@opendir($dossier);
    	if (!$ouverture) return;
    	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);
    if (!$r) return false;
    	return true;
    }
    clearDir('/images/bebe');

  2. #2
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    C'est peut-être à cause du slash dans le chemin. Pour windows, c'est l'anti-slash.

    L'idéal est d'utiliser la constante DIRECTORY_SEPARATOR.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function clearDir($dossier) {
    	$ouverture=@opendir($dossier);
    	if (!$ouverture) return false;
    	while($fichier=readdir($ouverture)) {
    		if ($fichier == '.' || $fichier == '..') continue;
    		$file=$dossier.DIRECTORY_SEPARATOR.$fichier;
    		if (is_dir($file))
    			$r=clearDir($file);
    		else
    			$r=@unlink($file);
    		if (!$r) return false;
    	}
    	closedir($ouverture);
    	$r=@rmdir($dossier);
    	return ($r)?true:false;
    }
    clearDir(DIRECTORY_SEPARATOR.'images'.DIRECTORY_SEPARATOR.'bebe');
    Si ca ne fonctionne toujours pas, il faut peut-être changer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clearDir(DIRECTORY_SEPARATOR.'images'.DIRECTORY_SEPARATOR.'bebe');
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clearDir('images'.DIRECTORY_SEPARATOR.'bebe');

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 137
    Points : 92
    Points
    92
    Par défaut Yes ca fonctionne !
    petite question si je lance la production donc que je le met en ligne je peux laisser les commande .DIRECTORY_SEPARATOR. ?!?

    merci en tout ça fonctionne avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    clearDir('images'.DIRECTORY_SEPARATOR.'bebe');

  4. #4
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par Polinsky
    je peux laisser les commande .DIRECTORY_SEPARATOR. ?
    Absolument...

    La chaine 'images'.DIRECTORY_SEPARATOR.'bebe' equivaut à :
    • 'images\bebe' sous Windows.
    • 'images/bebe' sous Linux

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 137
    Points : 92
    Points
    92
    Par défaut :D
    Effectivement,

    ca paraît logique. merci en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/09/2007, 18h09
  2. effacer un fichier ou son contenu
    Par yvesall dans le forum C
    Réponses: 16
    Dernier message: 09/05/2007, 21h04
  3. Déplacer un répertoire et son contenu
    Par choubiroute dans le forum Langage
    Réponses: 6
    Dernier message: 28/04/2006, 12h59
  4. Réponses: 9
    Dernier message: 24/10/2005, 18h42
  5. Comment copier un répertoire et son contenu ?
    Par yoghisan dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 20/06/2004, 17h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo