[RESOLU] Supprimer des fichiers de plus d'1 semaine

Eléphant du PHP | 216 Messages

22 nov. 2015, 23:07

Bonjour,

j'ai la fonction suivante qui créé un fichier avec un nom aléatoire :

Code : Tout sélectionner

// On enregistre maintenant le script SQL dans un fichier au format gzip $savedFile = 'BKP-' . date('d-m-Y_H-i-s') . '-' . md5(implode(',', $tables)) . '.sql.gz'; $gz = gzopen($path . $savedFile, 'w9'); gzwrite($gz, $return); gzclose($gz);
j'aimerais supprimer uniquement ces fichiers qui ont plus d'une semaine afin de ne pas surcharger ma espace disque.

Merci d'avance pour votre aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 nov. 2015, 23:20

Bonjour,

Tu peux utiliser :
- glob() pour lister tous les fichiers d'un répertoire
- filemtime() pour avoir la date de création/modification du fichier
- strtotime("-1 week") pour générer le timestamp d'il y a 1 semaine
- unlink() pour supprimer les fichiers
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 216 Messages

26 nov. 2015, 22:26

Salut @rthur, désolé pour le retard.

J'utilise le code suivant :
$age_fichier = time() - filemtime($chemin);
				
echo $age_fichier;
mais je trouve une valeur aberrante : 1288

je ne sais pas si le résultat est en seconde mais mon fichier à plusieurs jours (3 jours). Donc je devrais obtenir :

3600 * 24 * 3 = 259200

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

27 nov. 2015, 20:02

Fait un :
echo "<br />time = ".date("d F Y H:i:s.", time());
echo "<br />filectime = ".date("d F Y H:i:s.", filectime($chemin));
echo "<br />filemtime = ".date("d F Y H:i:s.", filemtime($chemin));
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 216 Messages

14 déc. 2015, 23:31

Finalement ça fonctionne.

Merci @rthur.