Page 1 sur 1
Modifier la date d'un fichier
Posté : 01 févr. 2006, 18:12
par sr34000
Salut a tous
je bloque sur un petit probleme...
Modifier la date d'un fichier
j'explique :
je souhaite que lorsque quelqu'un consulte ma page truc.php au jour J et a l'heure H cela modifie ma date de fichier en J-2 et H-3 par exemple
Arriver a modifier la date du fichier (date de modif) mais en plus la forcer en imposant J-2 et H-3 (par exemple)
En cherchant j'ai bien trouvé une fonction qui semble pouvoir faire cela
Code : Tout sélectionner
<?php
$url = truc.php
if ( touch($url) ) {
echo "La date de modification de $url a
été fixée à maintenant";
} else {
echo "Désolé, il est impossible de changer
la date de modification de $url";
}
?>
Mais je comprend pas tout ca marche pas top
ca ne me modifie pas la date de truc.php
ca me créer un fichier trucphp ???
Si quelqu'un a une idée
@+
Posté : 01 févr. 2006, 18:30
par rami
Est que le fichier truc.php est dans le même répertoire que ton script?
De plus, tu n'as pas mis d'apostrophe autour du nom du fichier:
<?php
$url = 'truc.php';
if ( touch($url) ) {
echo "La date de modification de $url a
été fixée à maintenant";
} else {
echo "Désolé, il est impossible de changer
la date de modification de $url";
}
?>
Posté : 02 févr. 2006, 12:25
par sr34000
ok merci génial cela marche
pourtant dans l'exemple
http://fr.php.net/manual/fr/function.touch.php
ils n'ont pas mis les ' '
Sais tu s'il est possible de dire que la date de modif n'est celle qui lance le script (jour J et heure H) mais plutot J-2 et H-3 (par exemple)
@+
Posté : 02 févr. 2006, 12:28
par sr34000
touch ( string filename [, int time [, int atime]] )
je comprend pas trop [, int time [, int atime]]
quoi mettre et comment ?
Posté : 02 févr. 2006, 13:03
par rami
Le 2ème paramètre correspond au timestamp de la date de dernière modification que tu veux donner.
Il faut donc que tu récupéres le timestamp courant, et que tu lui appliques les opérations que tu souhaites, puis appeler touch avec le timstamp modifié.
Tu auras besoin de :
-
date()
-
time()
Posté : 02 févr. 2006, 13:42
par sr34000
Salut et merci
une derniere petite question la date de modification d'un fichier c'est la date qui indique que le fichier a été mis a jour ??? c'est bien ca ?
Mais la date de dernier accès c'est quoi, ca sert a quoi ca s'affiche comment ? c'est stocké ou ?
Posté : 02 févr. 2006, 14:03
par rami
une derniere petite question la date de modification d'un fichier c'est la date qui indique que le fichier a été mis a jour ??? c'est bien ca ?
Tout à fait
Mais la date de dernier accès c'est quoi, ca sert a quoi ca s'affiche comment ? c'est stocké ou ?
Comme son nom l'indique, la date de dernier accès d'un fichier est, bah la date de dernier accès du fichier

. C'est stocké dans les "méta données" du fichier (ses attributs). Ca sert donc à savoir quand le fichier a été lu pour la dernière fois.
Pour y accéder :
http://fr.php.net/manual/fr/function.fileatime.php
Posté : 02 févr. 2006, 23:32
par sr34000
ok
y a t il une methode meilleure que l'autre
Code : Tout sélectionner
$foo = 60*60*24*2+60*60*3;
touch($file, strtotime(date('Y/m/d h:i:s')) - $foo);
strtotime ou pas strtotime
Posté : 06 févr. 2006, 18:10
par sr34000
Vraiment la derniere question lol
Code : Tout sélectionner
<?php
$url = $_SERVER["PHP_SELF"];
if ( touch($url) ) {
echo "La date de modification de $url a
été fixée à maintenant";
} else {
echo "Désolé, il est impossible de changer
la date de modification de $url";
}
?>
pourquoi cela ne marche pas, cette faois c'est pas une question de '' car c'est pas du texte...

Posté : 06 févr. 2006, 18:15
par titerm
car $_SERVER["PHP_SELF"] fait référence a la racine de ton serveur http...
et pas forcement a la racine de ton file système...
Utiliser $_SERVER["SCRIPT_FILENAME"] a la place