Page 1 sur 1

Problème sauts de lignes fwrite()

Posté : 08 juin 2008, 13:17
par chrislabricole
Bonjour,

Je réalise une application de logs... (dans le code qui suis, je simplifie...)

et il se trouve que j'ai un problème avec fwrite() plus précisément pour les sauts de lignes...
function put_in_log($timestamp, $ip, $page){
	$logfile = fopen('./logs.txt', 'a');
	// écriture dans le fichier
	fwrite($logfile, $timstamp."|".$ip."|".$page."\n");
	// fermeture du fichier
	fclose($logfile);
}
put_in_log( time(), $_SERVER['REMOTE_ADDR'], $page); // Page est le numéro de la page mit plus haut... aucun pb avec ça ;p
bon, alors, la 1ere fois que je vais sur cette page, le fichier logs.txt est remplis comme prévu, mais quand j'actualise, une nouvelle ligne devrait se créer, ben non... ça va direct après...
donc au lieu d'avoir :
tm....00|ip.ip.ip.ip|1
tm....30|ip.ip.ip.ip|2
tm....50|ip.ip.ip.ip|3
(je me suis pas casser la tête pour le timestamp :P)
et ben j'ai :
tm....00|ip.ip.ip.ip|1tm....30|ip.ip.ip.ip|2tm....50|ip.ip.ip.ip|3
Et je sais pas pourquoi puisque j'ai bien mis un \n dans mon code en fin de ligne... :roll:

Merci à vous :)

Posté : 08 juin 2008, 13:19
par Aureusms
Question bête est ce que le \ de \n aurai besoin d'être protéger ?

Posté : 08 juin 2008, 13:51
par chrislabricole
ben... si j'ai bien compris se que tu me dit, si j'écrit :
\\n
dans le fichier logs.txt, j'airais la ligne + \n etc...

\n = saut de ligne
et quand j'ouvre le fichier txt avec le bloc note les sauts de lignes y sont pas...

Merci.

Posté : 08 juin 2008, 14:48
par Ryle
Le "\n" indique effectivement une nouvelle ligne et il n'est pas besoin dans ton cas de protéger quoi que ce soit.

Ton fichier de log n'aurait-il pas des p'tit carrés bizare à la place des retours à la ligne attendus ?

A mon avis ton problème vient du fait que tu es sous windows et que tu consultes le fichier avec le bloc note. Contrairement à unix pour qui un simple \n suffit pour créer une nouvelle ligne, pour windows il faut un "\r\n" correspondant à un retour en début de ligne et un passage à la nouvelle ligne.
Sinon, tu peux conserver le "\n" et ouvrir le fichier avec Wordpad qui devrait interpréter correctement les retours :)

Posté : 08 juin 2008, 14:52
par chrislabricole
Ah oui !!! :o :o

Eh ben windows.... :evil:

Merci à toi !
Encore Résolu !