Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2007, 12h02   #1
Débutant
 
Inscription : mai 2005
Messages : 1 960
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 960
Points : 615
Points : 615
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 :
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 :
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 :
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!
pierrot10 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2007, 14h08   #2
Futur Membre du Club
 
Avatar de nschoe
 
Étudiant
Inscription : novembre 2007
Messages : 86
Détails du profil
Informations personnelles :
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2007
Messages : 86
Points : 19
Points : 19
Envoyer un message via MSN à nschoe
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 :
Citation:
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 :
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 !
nschoe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2007, 14h52   #3
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
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 ...).
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2007, 16h19   #4
Futur Membre du Club
 
Avatar de nschoe
 
Étudiant
Inscription : novembre 2007
Messages : 86
Détails du profil
Informations personnelles :
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2007
Messages : 86
Points : 19
Points : 19
Envoyer un message via MSN à nschoe
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 :
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.
nschoe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2007, 14h31   #5
Débutant
 
Inscription : mai 2005
Messages : 1 960
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 960
Points : 615
Points : 615
Salut a tous,
merci ca avance bien,
J'ai encore un petit souci par rapport au a de
Code :
$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!
pierrot10 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2007, 15h21   #6
Membre éclairé
 
Avatar de makmaoui
 
Développeur Web
Inscription : mai 2007
Messages : 282
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2007
Messages : 282
Points : 361
Points : 361
Salut,

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

Code :
1
2
3
4
5
<?php
 
$maChaine = "La première ligne \n La seconde ligne";
 
?>
makmaoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h01.


 
 
 
 
Partenaires

Hébergement Web