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 :

Supprimer les fichiers les plus anciens suivant leur nombre [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Points : 50
    Points
    50
    Par défaut Supprimer les fichiers les plus anciens suivant leur nombre
    Bonjour,

    J'ai un script de creation d'image sur mon site.

    Afin de ne pas emcombrer mon ftp,
    je voudrai creer une fonction qui compte le nombre fichier dans mon repertoire "images" et si le nombre de fichiers est supérieur à 15, que ca supprime les 10 fichiers les plus anciens.

    Merci d'avoir lu et si vous avez une idée n'hésitez pas à m'en faire part (meme une demi idée )

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Montre nous ce que tu as commencé sur cette fonction et nous pourrons t'aider sur les points pour lesquels tu as du mal.

    Il n'y a pas besoin d'idées pour un projet comme celui la, il suffit d'utiliser les fonctions php existantes :
    http://fr.php.net/manual/fr/ref.filesystem.php

    Lire le contenu d'un repertoire c'est meme un exemple de la doc.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Points : 50
    Points
    50
    Par défaut fonction debut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function verif() {
     
      $nb_fichier=fct_compt_fich("/images/");
      if ($nb_fichier>15) {
          unlink(*.png) //(seulement les les 10 plus anciens)
      }
    }
    voila ce que j'ai pour l'instant ca permet surement de mieux comprendre mon but. Merci

    je pense que les fonction fileatime() et stat() vont m'etre utiles, mais je ne voie pas de fonction qui compte le nombre de fichiers (peut etre en utilisant scandir() ).

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme indiqué dans la page que je t'ai donné, il y aussi les fonctions
    http://fr.php.net/manual/fr/ref.dir.php

    dont readdir() avec l'exemple dont je parlais.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Points : 50
    Points
    50
    Par défaut réponse
    C'est bon j'ai trouvé la solution. Merci
    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
    32
    33
    34
    35
    36
    37
    function verif() {
     
          $dir = "images/";
          $dh  = opendir($dir);
          while (false !== ($filename = readdir($dh))) {
              $files[] = $filename;
              $stat[]=stat('images/'.$filename.'');
          }
     
         $tab_mtime[0]=0;
         $tab_mtime[1]=0;
     
          for ($i=2; $i<count($files); $i++) {
              echo $files[$i].' -- >'.$stat[$i][mtime].'<br>';
              $tab_mtime[$i]=$stat[$i][mtime];
          }
     
          array_multisort($tab_mtime, $files);
     
           //echo "<br><br> ------------------<br>";
           //print_r($files);
           //echo "<br><br> ------------------<br>";
           //print_r($tab_mtime);
     
          $nb_fichiers=count($tab_mtime)-2;
          $nb=$nb_fichiers-10; // 10 : nombre de fichiers à laisser sur le ftp
          //echo "<br>--- il y a $nb_fichiers fichiers ";
          //echo "--- donc $nb fichiers à supprimer";
          for ($j=0; $j<$nb; $j++) {
                $compte=2+$j;
              if (unlink("images/".$files[$compte])) {echo "<br>  **  fichier $files[$compte] effacé <br> +++++++"; }         
          } 
     
    }
     
     
    verif();

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

Discussions similaires

  1. [Batch] Supprimer le fichier le plus ancien d'un dossier
    Par Egan69 dans le forum Scripts/Batch
    Réponses: 11
    Dernier message: 27/06/2013, 14h27
  2. Supprimer les fichiers Excel plus vieux que 7 jours
    Par jeje00 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/07/2009, 21h05
  3. Réponses: 4
    Dernier message: 29/06/2009, 13h02
  4. Supprimer le fichier le plus ancien dans un dossier
    Par sweaty dans le forum Delphi
    Réponses: 5
    Dernier message: 25/02/2007, 17h33
  5. TFileStream et les fichiers de plus de 2Go
    Par naikon dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/06/2004, 17h11

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