Bonjour,
Je cherche une fonction / une méthode qui me permettrait d'obtenir la date de création d'un fichier.
Merci d'avance
Bonjour,
Je cherche une fonction / une méthode qui me permettrait d'obtenir la date de création d'un fichier.
Merci d'avance
Salut,
La fonction filemtime renvoi la date de dernière modification du fichier (ou de création si tu ne le modifie pas), par contre je ne croit pas qu'il existe une fonction PHP pour connaitre la date de création sans prendre en compte la date de modification.
Merci pour ta réponse.
Je connais déjà filemtime, mais ce n'est pas ce qu'il me faut.
J'ai des fichiers dans un tableau, ordonnés par date de création, mais ces fichiers peuvent être modifiés une ou plusieurs fois.
L'ordre de mon tableau doit quand même être respecté même si le fichier est modifié...
La fonction stat (ou fstat) renvoie toutes les infos disponibles pour un fichier. A priori, la date de création n'a pas l'air d'en faire partie.
Comment sont créés tes fichiers ? Si ce sont des fichiers uploadés ou générés par script, tu peux peut-être stocker la date de création dans une table en base de données ou quelque chose comme ça...
Salut Celira.
J'avais déjà regardé du côté de stat() et avais abouti à la même conclusion que toi.
Mes fichiers sont des photos prises par webcam que des autres personnes placent dans un dossier sur le réseau.
J'ai essayé de faire afficher la "date du cliché" dans la colonne de l'explorateur Windows prévu à cet effet (vue "Détails"), mais elle reste vide...
A part ajouter la date de prise de vue dans le nom du fichier (genre photo_xxxxx_AAAAMMJJ-HHMM.jpg) ou mémoriser la date dans un fichier ou une bdd, je ne vois pas trop comment faire...
@Celira
Impossible d'ajouter les dates aux noms de fichiers car ceux-ci sont standardisés...
J'ai bien essayé d'exploiter les données exif (à savoir dans ce cas, le champ FileDateTime), mais celui-ci n'est pas correct car il prend la valeur de la dernière modification lorsque le fichier est modifié...
@stealth35
Si, je pense qu'il doit y avoir une manière d'arriver à mes fins et que cette information existe bien quelque part, car le mode Détails de l'explorateur Windows arrive bel et bien à avoir cette info (les valeurs de la colonne "Date de création" sont correctes).
bizarre ton histoire, puisque le stat et le details c'est les mêmes valeurs
Dans le sens ou si tu touches pas au droits du fichier l'inode est la date de création, donc présente dans stats et filectime.
Si ça ne correspond pas c'est que le fichier à été modifié, mais Windows lui garde ça en mémoire dans le système de fichier. Cette info peu être récupéré via COM mais c'est vraiment de la bidouille, et ça ne marchera que en local
Merci pour ces précisions.Envoyé par stealth35
Cependant, comme indiqué plus haut (http://www.developpez.net/forums/d11...r/#post6494891), mes fichiers sont appelés à être modifiés une ou plusieurs fois, mais il faut quand même qu'ils restent ordonnés par date de création.
Salut
J'ai jamais essayé, mais apparemment la fonction touch() permettrait de modifier la date de création ou dernière modification.
Donc ce qui fait qu'il suffirait de récupérer la date du fichier (s'il existe), ensuite le modifier/écraser, pour enfin remettre la date récupérée auparavant (avec touch).
La doc : touch()
Ils précisent bien "Tente".Tente de forcer la date de modification du fichier désigné par le paramètre filename à la date de spécifiée par le paramètre time
Ca sous entend qu'il doit avoir des cas où ça ne fonctionnerait pas.
Fais un essai
pour faire via COM :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $com = new COM('Scripting.FileSystemObject'); $file = $com->GetFile(__FILE__); $time = variant_date_to_timestamp($file->DateCreated); echo date('d/m/Y h:m:s', $time);
@RunCodePhp
Merci pour ta réponse, mais je ne peux pas appliquer ta solution car les images sont modifiées par des personnes qui ne sont pas dans la programmation, je ne peux donc pas leur demander de faire tourner des scripts avant et après qu'ils modifient une image.
@stealth35
Je suis en train d'essayer COM.
J'ai une erreur avec ton code :
Mais je suis en train d'essayer de voir d'où vient le problème... à suivre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Unknown<br/><b>Description:</b> Unknown' in C:\Program Files\EasyPHP-5.3.9\www\test.php:13 Stack trace: #0 C:\Program Files\EasyPHP-5.3.9\www\test.php(13): com->GetFile('2603.jpg') #1 {main} thrown in C:\Program Files\EasyPHP-5.3.9\www\test.php on line 13
Yesss!
C'est bon !
Merci beaucoup stealth pour cette aide, t'es trop fort!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager