Page 1 sur 1

Effacement des fichiers selon une date

Posté : 04 juin 2007, 11:41
par zepretender
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

Posté : 04 juin 2007, 12:32
par Ryle
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" :)

Posté : 04 juin 2007, 15:11
par zepretender
Merci pour cette réponse !

mais...

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

Posté : 04 juin 2007, 15:21
par Ryle
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 :)

Posté : 05 juin 2007, 02:31
par Xenon_54
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.