begin process at 2012 02 12 10:30:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Donner un nom spécial à un fichier crée en php


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Donner un nom spécial à un fichier crée en php

mercredi 14 novembre 2007 à 16:49:43 | Donner un nom spécial à un fichier crée en php

klitzounet

 Bonjour j'aimerais ouvrir un fichier (le créer s'il n'existe pas) lorsque un visiteur ouvre l'une des pages de mon site web dans le quel des informations sont automatiquement insérées. Pour cela je n'ai pas besoin d'aide le fichier php est déjà crée :P mais ce que j'aimerais faire c'est pouvoir ouvrir un fichier qui porte un nom de fonction php (exemple: $date).
C'est a dire plus concrètement que par exemple si quelqu'un viens le Lundi 01 Janvier 2008 sur mon site, il y ai un fichier qui s'édite avec le nom 01/01/01 (exemple).
Je ne demande pas forcément pour la date mais pour n'importe quelle fonction php.

Voici la partis qui sert à ce que je veux faire dans mon code :

<?
// Fichier
$fichier = 'visites.txt';
// Ouverture du fichier, création si besoin est
$fp = fopen($fichier, 'a+');

// Récupère la date
$date = date('d-m-Y H:i:s');

// Récupère l'IP du visiteur
if(IsSet($_SERVER['HTTP_X_FORWARDED_FOR'])){
    $ip_simple = $_SERVER['HTTP_X_FORWARDED_FOR'];
}elseif(IsSet($_SERVER['HTTP_CLIENT_IP'])){
    $ip_simple = $_SERVER['HTTP_CLIENT_IP'];
}else{
    $ip_simple = $_SERVER['REMOTE_ADDR'];
}

$fsz = filesize($fichier);
fseek($fp,$fsz);

// Enregistre les données
fputs($fp, $date.' | IP: '.$ip_simple."\r\n");

// Ferme le fichier
fclose($fp);

?>

 Voila est-ce que quelqu'un pense pouvoir m'aider en trouvant juste ce qu'il faut modifier dans la première ligne :
$fichier = 'visites.txt';
(ne cherchez pas ailleurs c'est la normalement ^^)
pour que cela fasse l'effet voulu.
J'ai essayé une multitude de possibilités comme $fichier = '$date.txt'; OU $fichier = "$date.'visites.txt'"; OU $fichier = $date.'visites.txt'; ... j'ai essayé avec un ==, avec des ( ) ... je ne vois plus quoi faire

Merci beaucoup à bientôt j'espère.
PS: c'est vraiment rare que je poste sur des forums pour avoir des réponses a mes problèmes mais je me dis que nous sommes mercredi apres-midi et qu'avec de la chance j'aurais peut-etre la réponse d'un connaisseur dans la semaine

Bonne soirée
mercredi 14 novembre 2007 à 17:48:55 | Re : Donner un nom spécial à un fichier crée en php

neigedhiver

Réponse acceptée !
Salut, Je ne sais pas bien comment se comporte PHP avec les noms de fichiers qui contiennent un espace. Mais je ne serais pas étonné qu'il n'apprécie pas. Ton format de date contenant un espace, je chercherais de ce côté là. Ensuite, si tu veux savoir pourquoi : - $fichier = '$date.txt'; - $fichier = "$date.'visites.txt'"; ne fonctionnent pas, je te recommande de te pencher un peu sur la concaténation de chaines de caractères... On trouve tout ce qu'il faut dans la doc : - Doc sur les chaines de caractères : http://www.php.net/manual/fr/language.types.string.php - Les opérateurs de chaines : http://www.php.net/manual/fr/language.operators.string.php Seule l'assignation $fichier = $date.'visites.txt'; fonctionnera. Mais comme ta date comporte un espace... Il y a fort à parier que PHP essaye d'ouvrir un fichier qui porte un nom qui correspond à la chaine de caractères AVANT l'espace et pas au-delà. Note aussi que == n'est pas un opérateur d'assignation, mais de comparaison, ce qui n'est absolument pas la même chose ;)
mercredi 14 novembre 2007 à 20:02:43 | Re : Donner un nom spécial à un fichier crée en php

malalam

Administrateur CodeS-SourceS
Hello,

il faut encoder le nom du fichier via urlencode() s'il y a des espaces. A priori.
mercredi 14 novembre 2007 à 20:47:16 | Re : Donner un nom spécial à un fichier crée en php

neigedhiver

Gné ? Pour un fichier sur le système de fichier ? Un simple antislash devant l'espace ne suffirait pas ?
mercredi 14 novembre 2007 à 20:57:11 | Re : Donner un nom spécial à un fichier crée en php

malalam

Administrateur CodeS-SourceS
Je ne sais pas, je ne mets jamais d'espaces ni de majuscules dans mes noms de fichier.
Mais, si tu uploades un fichier puis que tu fais ton move_uploaded_file() et cie dessus...le nom du fichier est encodé (comme tout ce qui passe dans un formulaire).Et perso, je ne fais pas d'urldecode() ou autre sur le nom du fichier que je traite après. Donc ça doit fonctionner.
dimanche 18 novembre 2007 à 23:31:31 | Re : Donner un nom spécial à un fichier crée en php

klitzounet

Réponse acceptée !

Merci beaucoup c'est super j'ai réussi

La réponse est là :
[ Lien ]
avec l'exemple que j'ai analysé puis fini par comprendre :

Exemple 11.15. Utilisation des accolades {} dans les chaînes

<?php
$boisson
= 'vin'
;
echo
"Du $boisson, du pain et du fromage !"
;
 
// Correct, car "," n'est pas autorisé dans les noms de variables

echo 'Il a goûté plusieurs ' . $boissons
;
 
// Pas correct, car 's' peut faire partie d'un nom de variable, et PHP recherchera alors $boissons

echo "Il a goûté plusieurs ${boisson}s"
;
 
// Correct
?>


Je l'ai donc adapté à mon cas pour arriver à cette fonction :
   $date = date('d-m-Y H:i:s')
   $fichier = "${date}.htm";
Ce qui me créé (dans l'exemple d'aujourd'hui) un fichier nommé "18-11-07 22:32:11.htm"

Alors merci beaucoup à vous de m'avoir mis sur la piste  je n'aurais pas réussi sans ^^
Maintenant un nouveau problème se présente à moi... j'ai également cherché une solution avant d'en parler ici biensur.
Le voici :
J'ai le code php suivant (toujours inclue dans une page html et lors de la visite de n'importe qui, un listage automatique de l'IP, le navigateur etc... est créé) pour reprendre l'exemple du début de ce sujet :

<?

   // ON RECUPERE TOUTES LES INFORMATIONS POUR LA SUITE
// Date
$date = date('d-m-Y H:i:s'); // Date & heure complète à afficher dans le fichier
// Prépare le nom de fichier à créer
$jour = strftime('%d'); // %d affiche le jour de 01 à 31
$mois = strftime('%m'); // %m affiche le mois de 1 à 12
$annee = strftime('%y'); // %y affiche l'année sur 2 chiffres
$date_fichier = "$jour-$mois-$annee"; // format du nom porté par le fichier créé

// Récupère l'IP du visiteur
if(IsSet($_SERVER['HTTP_X_FORWARDED_FOR'])){
    $ip_simple = $_SERVER['HTTP_X_FORWARDED_FOR'];
}elseif(IsSet($_SERVER['HTTP_CLIENT_IP'])){
    $ip_simple = $_SERVER['HTTP_CLIENT_IP'];
}else{
    $ip_simple = $_SERVER['REMOTE_ADDR'];
}

   // ON INSCRIS TOUTES LES INFORMATIONS TROUVEE DANS LE FICHIER VOULU
// Fichier
$fichier = "${date_fichier}.htm";
// Ouverture du fichier
$fp = fopen($fichier, 'a+');

$fsz = filesize($fichier);
fseek($fp,$fsz);

// Enregistre les données
fputs($fp, $date.' | IP: '.$ip_simple."\r\n");

// Ferme le fichier
fclose($fp);

?>

-> Il marche parfaitement pas d'inquiétude.
 Ce que j'aimerais faire c'est ne pas créér un fichier par jour contenant l'IP des visiteurs mais plutôt un par semaine. Pour créer un par moi il suffit d'écrire :
   $date_fichier = "$mois$annee";
mais pour les semaines je n'ai que %W (ou %V) mais ce n'est pas ce que je veux puisque cela donne le numéro de la semaine par rapport au début de l'année. Donc il va s'affiche par exemple "52.11-07.htm" tandis que j'aimerais avoir seulement :
   01.11-07.htm pour la première semaine du mois
   02.11-07.htm pour la deuxième semaine du mois
   03.11-07.htm pour la troisième semaine du mois
et   04.11-07.htm pour la quatrième semaine du mois.
Si vous ne comprenez pas ce que je recherche je peux réexpliquer avec d'autres mots :)
Sinon essayez de me dire si vous pensez que c'est réalisable ou pas.

Encore merci et à bientôt.
mercredi 5 décembre 2007 à 15:36:06 | Re : Donner un nom spécial à un fichier crée en php

klitzounet

C'est bon laissez tomber ca ne doit pas être possible à faire la création d'un fichier par semaine mais ca n'est pas grave car enfait la solution quotidiènne m'est favorable

Sujet Terminé ! Encore merci


Cette discussion est classée dans : fichier, date, php, txt, ip


Répondre à ce message

Sujets en rapport avec ce message

php : lire fichier txt, comparer heure et choix liens [ par drominik ] voila,j'ai dans un fichier txt, l'ip du visiteur et l'heure de sa visite,et j'aimerais a chaque visiteur pouvoir aller lire le fichier txt, et compare IP/Fichier.txt: Probleme FOPEN [ par skurvy ] Voila mon problem:$ip= $_SERVER["REMOTE_ADDR"];// Adresse ip$b= "";// pour nouvelle ligne$chat = file("http://".$ip."/chat.txt"); //ouvre le fichier$d Formulaire saisie champ pour ecrire dans un fichier texte. [ par ExSter ] Bonjour, voila, ca parait fort simple à réaliser, mais j'aimerais créer un formulaire, sous php, qui demande les champs suivants : Date , Auteur , le lecture d'un fichier texte [ par aquewel ] Bonjour a tous, j'ecris un script pour faire un calendrier et gerer des evenements mais je commence a rencontrer des problemes : je sauvegarde dans un recuperer l'url de la page a partir d'une autre page [ par db2p ] hellovoila j'ai une page php: index.phpen bas de cette page je mets un include genreinclude 'date_modif.php';le fichier 'date_modif.php' doit afficher Marquer une date de mise en jour du fichier ! [ par JPR ] Bonjour,Voilà, je suis newbbie en PHP et je souhaite trouver un script en PHP pour marquer la date de ma dernière mise à jour de ma page.C'est donc un Recréer les chaine de caractère ????? [ par Charlopopo ] Salut tout le monde!!!! Voilà, je vous le dit tout dessuite : le php je ni connai absolument riennnn. Le probleme est que c'est bien utile.... Bon, pouvez vous modifiez ma page php SVPPPP !!!! [ par stefbuet ] bonjour, voila j'ai du code php, mais il faudrais le modifier un peu :tous d'abort, les variables qui viendrai dans le fichier texte créé seraient plu Manipulation de données d'un fichier txt [ par iow4 ] Bonjour, J'ai un petit probleme sur un script et je viens chercher de l'aide. Voila j'ai un fichier nommé ip.txt qui contient une adresse ip par ligne fichier txt, php formulaire [ par TuxOnline ] Bonjour, voila j'ai un formulaire avec une text aera.Quand je valide sa doit aller dans un fichier. donc sa sa fonctionne mais car il y a un mais lol.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,228 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales