sr34000 Posté 1 Février 2006 Posté 1 Février 2006 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.phpif ( 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 @+
NorSeb Posté 1 Février 2006 Posté 1 Février 2006 Bonjour, J'ai lu sur cette page que tu peux ajouter un paramètre à la fonction touch() pour forcer la date et l'heure de modifcation... A toi de jouer
sr34000 Posté 1 Février 2006 Auteur Posté 1 Février 2006 oui je me suis justement basé sur cette page mais y a un truc qui bloque je sais pas quoi (voir mon post precedent)
xpatval Posté 1 Février 2006 Posté 1 Février 2006 Et avec $url = "truc.php"; au lieu de $url = truc.php ? xpavtal
sr34000 Posté 2 Février 2006 Auteur Posté 2 Février 2006 (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é 2 Février 2006 par sr34000
NorSeb Posté 2 Février 2006 Posté 2 Février 2006 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...
sr34000 Posté 2 Février 2006 Auteur Posté 2 Février 2006 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
Anonymus Posté 3 Février 2006 Posté 3 Février 2006 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.
sr34000 Posté 6 Février 2006 Auteur Posté 6 Février 2006 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...
Dan Posté 6 Février 2006 Posté 6 Février 2006 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant