Effacement des fichiers selon une date

Eléphant du PHP | 52 Messages

04 juin 2007, 11:41

Bonjour,

Dans un répertoire, je voudrais pouvoir effacer tous les fichiers dont la date de création est inférieure à 30 jours de manière à ne garder que ceux qui ont été créés sur le mois précédent.

Pouvez-vous me dire comment faire ?

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 juin 2007, 12:32

La fonction filemtime() te permet de connaitre la date de dernière modification d'un fichier, quant à la suppression il te suffit d'utiliser unlink() pour virer les fichiers "périmés" :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 52 Messages

04 juin 2007, 15:11

Merci pour cette réponse !

mais...

Comment faire pour que ce soit antérieur aux 30 derniers jours ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 juin 2007, 15:21

Jete un p'tit coup d'oeil à la FAQ : Quelques petites manipulations avec les dates (PHP/MySQL), tu y verras comment connaitre la date du jour et calculer un écart entre deux date.

Tu pourras ainsi comparer avec la date de chaque fichier pour savoir si l'écart est supérieur à 30 jours et savoir s'il faut le supprimer ou pas :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 1885 Messages

05 juin 2007, 02:31

PHP ne possède malheureusement pas l'équivalent de find en bash.
Il faudrait comparer la date manuellement pour tous les fichiers.
Le temps de modification retournée par filemtime() est en unix_timestamp.

Tu peux comparer ainsi:
$filemtime = filemtime('monfichier.txt');
if ($filemtime < now()-(60*60*24*30)) {
  echo 'Trop vieux!';
}
Fais des tests avant de procéder à la suppression définitive.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP