Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2012, 11h57   #1
Invité régulier
 
Inscription : mai 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 37
Points : 6
Points : 6
Par défaut Obtenir la date de création d'un fichier

Bonjour,

Je cherche une fonction / une méthode qui me permettrait d'obtenir la date de création d'un fichier.


Merci d'avance
zzzer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 12h08   #2
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 414
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 414
Points : 539
Points : 539
Envoyer un message via MSN à amoiraud
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.
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 12h25   #3
Invité régulier
 
Inscription : mai 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 37
Points : 6
Points : 6
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é...
zzzer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 14h13   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 678
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 678
Points : 5 425
Points : 5 425
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...
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 14h21   #5
Invité régulier
 
Inscription : mai 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 37
Points : 6
Points : 6
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...
zzzer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 14h53   #6
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 678
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 678
Points : 5 425
Points : 5 425
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...
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 15h09   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 249
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 249
Points : 8 633
Points : 8 633
Citation:
Envoyé par zzzer Voir le message
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...
c'est que cette information n'existe pas
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 15h17   #8
Invité régulier
 
Inscription : mai 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 37
Points : 6
Points : 6
@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).
zzzer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 15h32   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 249
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 249
Points : 8 633
Points : 8 633
Citation:
Envoyé par zzzer Voir le message
@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).
regarde si y'a des info EXIF dans les images
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 16h04   #10
Invité régulier
 
Inscription : mai 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 37
Points : 6
Points : 6
Citation:
Envoyé par stealth35 Voir le message
regarde si y'a des info EXIF dans les images
Il y en a, mais rien d'exploitable. cf plus haut
zzzer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 16h39   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 249
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 249
Points : 8 633
Points : 8 633
bizarre ton histoire, puisque le stat et le details c'est les mêmes valeurs
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 09h55   #12
Invité régulier
 
Inscription : mai 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 37
Points : 6
Points : 6
Citation:
Envoyé par stealth35 Voir le message
bizarre ton histoire, puisque le stat et le details c'est les mêmes valeurs
stat() ne fournit pas la date de création du fichier...

Citation:
Envoyé par php.net
0 dev volume
1 ino Numéro d'inode (*)
2 mode droit d'accès à l'inode
3 nlink nombre de liens
4 uid userid du propriétaire (*)
5 gid groupid du propriétaire (*)
6 rdev type du volume, si le volume est une inode
7 size taille en octets
8 atime date de dernier accès (Unix timestamp)
9 mtime date de dernière modification (Unix timestamp)
10 ctime date de dernier changement d'inode (Unix timestamp)
11 blksize taille de bloc (**)
12 blocks nombre de blocs de 512 octets alloués (**)
zzzer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 10h16   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 249
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 249
Points : 8 633
Points : 8 633
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 10h47   #14
Invité régulier
 
Inscription : mai 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 37
Points : 6
Points : 6
Citation:
Envoyé par stealth35
Si ça ne correspond pas c'est que le fichier à été modifié
Merci pour ces précisions.
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.
zzzer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 11h09   #15
Modérateur
 
Inscription : septembre 2010
Messages : 7 249
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 249
Points : 8 633
Points : 8 633
Citation:
Envoyé par zzzer Voir le message
Merci pour ces précisions.
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.
fait via COM, mais ça marche uniquement sur un serveur Windows, sinon c'est pas possible
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 11h16   #16
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 738
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 738
Points : 3 310
Points : 3 310
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()
Citation:
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
Ils précisent bien "Tente".
Ca sous entend qu'il doit avoir des cas où ça ne fonctionnerait pas.


Fais un essai
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 11h29   #17
Modérateur
 
Inscription : septembre 2010
Messages : 7 249
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 249
Points : 8 633
Points : 8 633
pour faire via COM :

Code :
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);
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 14h19   #18
Invité régulier
 
Inscription : mai 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 37
Points : 6
Points : 6
@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 :
Code :
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
Mais je suis en train d'essayer de voir d'où vient le problème... à suivre...
zzzer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 14h20   #19
Modérateur
 
Inscription : septembre 2010
Messages : 7 249
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 249
Points : 8 633
Points : 8 633
Citation:
Envoyé par zzzer Voir le message
@stealth35
Je suis en train d'essayer COM.
J'ai une erreur avec ton code :
Code :
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
Mais je suis en train d'essayer de voir d'où vient le problème... à suivre...

normale, le nom du fichier doit être en absolu, donc fait un realpath
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 14h29   #20
Invité régulier
 
Inscription : mai 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 37
Points : 6
Points : 6
Yesss!

C'est bon !

Merci beaucoup stealth pour cette aide, t'es trop fort!
zzzer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h02.


 
 
 
 
Partenaires

Hébergement Web