Aller au contenu

Modifier la date d'un fichier


Sujets conseillés

Posté

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

<?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é (modifié)

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)

touch ( string filename [, int time [, int atime]] )

je comprend pas trop [, int time [, int atime]]

quoi mettre et comment ?

@+

Modifié par sr34000
Posté

Dans ton cas, seul time est intéressant.

La fonction du même nom (time()) renvoi un entier qui correspond au nombre de seconde écoulées depuis le 1 janvier 1970...

Si tu veux faire H-2 par exemple, tu peux faire :

$avanthier = time() - (86400*2);

86400 étant le nombre de secondes d'une journée... ;)

Posté

ok

y a t il une methode meilleure que l'autre

$avanthier = time() - (86400*2);

$foo = 60*60*24*2+60*60*3;
touch($file, strtotime(date('Y/m/d h:i:s')) - $foo);

strtotime ou pas strtotime

Posté

Oui, la première.

La seconde est assez... alambiquée. Il ne sert à rien de compliquer le code lorsqu'il n'en est pas nécessaire (et.. il n'en est jamais nécessaire ;) )

La première est vraiment très explicite avec un petit peu d'habitude.

time() c'est maintenant,

86400*2, c'est deux fois 24 heures,

et le résultat c'est :

avant hier, à la même heure ;)

La seconde méthode n'est pas lisible au premier coup d'oeil, et c'est bien dommage.

De plus, tu utilises des raccourcis qui alourdissent le code (à mon avis), et qui sont susceptibles de te générer des erreurs d'interprétation par la suite (par exemple : date('Y/m/d h:i:s') au lieu de date('Y/m/d h:i:s',time())

Nico.

Posté

Vraiment la derniere question lol

<?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...

:fete:

Posté

Et en remplaçant les " par des simples quotes ? ;)

$url = $_SERVER['PHP_SELF'];

Si cela ne marche pas, fais un

print $_SERVER['PHP_SELF'];

et donnes-nous le résultat.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...