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

PHP & Base de données Discussion :

Supprimer des fichiers d'un dossier [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Par défaut Supprimer des fichiers d'un dossier
    Bonjour,

    Bon je suis nouveau ici donc je vais essayé de faire simple

    Voila en ce moment je suis en stage pour une grande société, mon travail consiste à m'occuper d'une partie de site web...

    Mon tuteur voudrait que je modifie un programme, que je l'améliore quoi...

    Bon j'en viens au vif du sujet vous inquiétez pas ^^

    En gros le site effectue des stats sur une année à partir de fichiers logs, on peut visualiser également par mois et par semaine de cette même année. A la fin d'une année le programme doit pouvoir créer un nouveau dossier relatif à la nouvelle et qui contiendra des fichiers xml, ce dossier est en faites une copie du dossier de l'année précédente avec les fichiers relatifs.

    Ce que j'ai pensé à faire c'est que :

    Quand on change d'année ==> On copie dans le nouveau dossier ==> on efface les fichiers de l'année précédente ==> on ajoute au fur et à mesure les fichiers xml...

    Mon prolème c'est que je ne sais pas comment supprimer des fichiers en particuliers... Je voudrais accéder au nouveau dossier, séléctionner les fichiers à effacer qui sont intitulés par rapport à l'année (ex : StatsMonth1-2006.xml). Je pense que ça se ferait au moment de la fonction copy_rep()...
    On m'a parlé de unlink() mais bon il y a plus d'une centaire de fichiers...

    Voila la boucle
    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
     
        $date="select date from logstable, logstableip";
        $resdate=mysql_query($date) or die('Erreur SQL !<br>'.$date.'<br>'.mysql_error());
     
        $rep = './lib/';
        $newrep = './lib_copy/';
        //Boucle recherchant si on est dans une nouvelle année pour pouvoir récupérer les données de l'année dans un nouveau dossier
        for($i=0; $row=mysql_fetch_array($resdate);$i++)
        {
            if($row!=NULL)
            {
                if($row[0]<date("Y-01-01"))
                {
                    // Copie le dossier $rep dans le dossier $newrep
                    copy_rep ($rep,$newrep);
                 }
            }
        }
    Bon en espérant que vous avez pigé (je pense pas ) et m'en voulez pas c'est mon premier poste

    Merki

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Bonjour,
    je n'ai pas compris votre script, ni votre raisonnement. Ne serait-il pas plus simple de créer un nouveau dossier avec la fonction mkdir()?

    Du reste, que fait exactement votre script?

    Cordialement,
    DaRiaN.

  3. #3
    Membre éclairé Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Par défaut
    Je m'en doutait lol

    En faites mon script recupere d'abord les dates dans les tables et il verifie si elle sont dans la bonne année, si l'année a changé on fait la copie du dossier grâce à cette fonction
    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
    27
    28
    29
    30
    31
     
    function copy_rep ($dir2copy,$dir_paste) 
    {
            // On vérifie si $dir2copy est un dossier
            if (is_dir($dir2copy)) 
    				{
                    // Si oui, on l'ouvre
                    if ($dh = opendir($dir2copy)) 
    								{								
                            // On liste les dossiers et fichiers de $dir2copy
                            while (($file = readdir($dh)) !== false) 
    												{
    																// Si le dossier dans lequel on veut coller n'existe pas, on le créé
                                    if (!is_dir($dir_paste)) mkdir ($dir_paste, 0777);
     
                                    // S'il s'agit d'un dossier, on relance la fonction récursive
                                    if(is_dir($dir2copy.$file) && $file != '..'  && $file != '.') copy_dir ( $dir2copy.$file.'/' , $dir_paste.$file.'/' );     
                                    // S'il s'agit d'un fichier, on le copie simplement
     
                                    elseif($file != '..'  && $file != '.') copy ( $dir2copy.$file , $dir_paste.$file );
     
                            }
     
    									// On ferme $dir2copy
    									closedir($dh);
     
                    }
     
            }       
     
    }
    En faites je recupère tout ce qu'il se trouve dans le dossier, donc tout les fichiers de l'année précédente, je veux supprimer ces fichiers pour pouvoir y mettre les nouveaux fichiers de l'année courante. C'est trés difficil à expliqué en faites.
    En gros les stats sont retranscript dans des fichiers xml pour l'année, les mois et les semaines relatives à cette année, le but est donc de conserver toutes les stats des années précédentes. On se retrouve avec des dossiers intitulés "2005", "2006"... qui regroupes donc les fichiers xml et des fichiers php, le truc c'est que moi je n'ai pas fait le site, je le modifie c'est tout!!

    Maintenant, ce que je vous demande c'est comment accéder au nouveau dossier et supprimer des éléments qui sont dans celui-ci automatiquement...

    Si vous ne comprenez toujours pas ce n'est pas grave je me débrouillerai tout seul !!

    Merci quand même ^^

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Pour supprimer tous les fichiers d'un répertoire, il vous suffit de coder une petite fonction :

    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
    <?php
     
      function vider($c)
      {
        $d = dir($c);
     
        while (($e = $d->read()) !== FALSE)
        {
          $l = $c.'/'.$e;
          if (is_file($l)) unlink($l);
        }
     
        $d->close();  
      }
     
    ?>

  5. #5
    Membre éclairé Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Par défaut
    Wah nickel sa marche impeccablement !!!
    On a finalement réussi à me comprendre !!

    Merci monsieur !!!

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

Discussions similaires

  1. [Batch] Supprimer des fichiers situés dans des sous dossiers et dossiers
    Par chuspyto dans le forum Scripts/Batch
    Réponses: 17
    Dernier message: 20/11/2019, 19h31
  2. Réponses: 8
    Dernier message: 19/01/2008, 10h25
  3. Réponses: 45
    Dernier message: 04/05/2006, 01h10
  4. Supprimer des fichiers blancs
    Par melmouj dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 05/12/2005, 14h38
  5. Comment supprimer des fichiers en nombre ?
    Par Didier L dans le forum API, COM et SDKs
    Réponses: 13
    Dernier message: 25/01/2005, 16h01

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