IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Compteur, écrire à la ligne dans un fichier texte


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut Compteur, écrire à la ligne dans un fichier texte
    Bonjour,
    je dois tres rapidement faire une modification et votre aide me serait précieuse vu le peu de temps que j'ai
    J'ai deja un petit script qui va incrémenté un fichier texte lors de chaque visite d'un page internet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
     
    	//Oucerture du fchier en lecture
    	$handle = fopen ("compteur.txt", "r");
    	// Lecture de la premiere ligne
    	$compteur = fgets ($handle);
    	// Fermeture du fichier
    	fclose ($handle);
    	//comversion de $compteur en entier
    	settype($compteur,"int");
    	//incrementation du compteur
    	$compteur++;
    	//Affichage du compteur
    	echo $compteur;
     
    	//reouverture du fichier en ecriture
    	$handle =fopen("compteur.txt","w");
    	//ecriture de la nouvelle valeur
    	fputs ($handle,$compteur);
    	//ferme le fichier
    	fclose ($handle);
     
    ?>
    je dois le modifier de la maniere suivante:
    1. je ne veux plus que mon compteur efface la derniere valeur, j'aimerai qu'a chaque ligne il indique le valeur du compteur,
    2. je n'ai plus besoin qu'il compte mais qu'il ajoute ces valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	$who = 'Host serveur :'.$_SERVER['HTTP_HOST'].', ';
    	$who .= 'Host :'.$_SERVER['REMOTE_ADDR'].', ';
    	$who .= 'Browser :'.$_SERVER['HTTP_USER_AGENT'].', ';
    	$who .= 'le '.date("d-m-Y").', ';
    	$who .= 'à '.date("H:i").', ';
    Pour cela j'ai fait ce code, mais ca n'affiche pas ce que je veux
    le premier echo $who, affiche bien, mais pas le deuxieme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    	$who = 'Host serveur :'.$_SERVER['HTTP_HOST'].', ';
    	$who .= 'Host :'.$_SERVER['REMOTE_ADDR'].', ';
    	$who .= 'Browser :'.$_SERVER['HTTP_USER_AGENT'].', ';
    	$who .= 'le '.date("d-m-Y").', ';
    	$who .= 'à '.date("H:i").', ';
    	echo $who;
     
     
    	settype($who,"string");
     
    	//Affichage du compteur
    	echo $who;
     
    	//reouverture du fichier en ecriture
    	$handle =fopen("who.txt","w");
    	//ecriture de la nouvelle valeur
    	fputs ($handle,$who);
    	//ferme le fichier
    	fclose ($handle);
     
     
    ?>
    Comment pourrais je kodifier mon truc?
    Merci
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Membre du Club Avatar de nschoe
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 86
    Points : 44
    Points
    44
    Par défaut
    Bonjour pierrot10,

    Je pense que j'ai trouve (au moins une partie) ton erreur, ou alors c'est que je n'ai pas compris ce que tu voulais, le cas échéant je m'excuse.

    Mais tu as dis :
    1. je ne veux plus que mon compteur efface la derniere valeur, j'aimerai qu'a chaque ligne il indique le valeur du compteur
    Or, je vois dans ton nouveau code cette ligne-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //reouverture du fichier en ecriture
    	$handle =fopen("who.txt","w");
    Or, le "w" veut dire que lors de l'ouverture de ton fichier "who.txt", il place le curseur au tout début et supprime tout le contenu du fichier. Donc a chaque ouverture avec l'option "w", tu effaces ton fichier.

    Voilà, j'espere t'avoir aidé, et si je suis à côté de la plaque, je m'excuse !

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Avec par exemple $handle =fopen("who.txt","a"); , tu pourras écrire directement à la fin de ton fichier sans effacer le contenu existant (a pour append ...).

  4. #4
    Membre du Club Avatar de nschoe
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 86
    Points : 44
    Points
    44
    Par défaut
    En effet, mais pierrot10, si tu veux faire comme ca, je te conseille (enfin c'est ce que je ferais moi) de stocker ca dans un fichier XML.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <user>
         <serverHost>$_SERVER['HTTP_HOST']</serverHost>
         <ip>$_SERVER['REMOTE_ADDR']</ip>
         <browser>$_SERVER['HTTP_USER_AGENT']</browser>
         <date>...</date>
    </user>
    Bon biensur, le code ci-contre n'est pas correcte, mais tu as compris le principe.
    Je pense que ce serait plus logique de faire comme ça, mais après tout, ce n'est qu'une supposition.

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Salut a tous,
    merci ca avance bien,
    J'ai encore un petit souci par rapport au a de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $handle =fopen("who.txt","a")
    Comment pourrais je faire pour que dans mon fichier texte, les donnée soit a la ligne. Dans mon cas, il met les donnée un derriere l'autre
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  6. #6
    Membre averti Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Points : 368
    Points
    368
    Par défaut
    Salut,

    utilise le "\n" (retour à la ligne) ou le "\r" (retour chariot) dans ta chaîne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
     
    $maChaine = "La première ligne \n La seconde ligne";
     
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43
  2. Retour a la ligne dans un fichier texte
    Par dykkent dans le forum Langage
    Réponses: 2
    Dernier message: 07/03/2006, 18h57
  3. Suppression de lignes dans un fichier texte
    Par Isa31 dans le forum Langage
    Réponses: 16
    Dernier message: 26/01/2006, 20h07
  4. [Fichier] Nombre de ligne dans un fichier texte
    Par NewSer dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2004, 16h58
  5. Réponses: 2
    Dernier message: 02/03/2004, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo