Je sais que ce sujet est super vieux, mais, au cas où quelqu'un cherche une réponse, comme moi, je poste ma solution.
Cette solution fonctionne SI cela ne vous dérange pas d'avoir quelques données supplémentaires au début de votre fichier.
En gros, l'idée est de, si le fichier n'existe pas, de le créer et d'ajouter la date du jour à la première ligne. Ensuite, vous pouvez lire la première ligne avec fgets(fopen($file, 'r'))
et le transformer en un DateTime
ou autre (vous pouvez évidemment l'utiliser brut, à moins que vous ne l'ayez enregistré dans un format bizarre) et voilà - vous avez votre date de création ! Par exemple, mon script pour rafraîchir mon fichier journal tous les 30 jours ressemble à ceci :
if (file_exists($logfile)) {
$now = new DateTime();
$date_created = fgets(fopen($logfile, 'r'));
if ($date_created == '') {
file_put_contents($logfile, date('Y-m-d H:i:s').PHP_EOL, FILE_APPEND | LOCK_EX);
}
$date_created = new DateTime($date_created);
$expiry = $date_created->modify('+ 30 days');
if ($now >= $expiry) {
unlink($logfile);
}
}