fwrite et ligne en trop après un write

Benoit412
Invité n'ayant pas de compte PHPfrance

04 mars 2008, 23:12

Salut à tous!

voilà j'ai fait un mini livre d'or comme exercice et j'ai un bête problème...

Tout fonctionne bien hormis que dès que je fais un fwrite PHP me rajoute un ligne vide!

Code : Tout sélectionner

$fp = fopen("livre2.txt","w"); fwrite($fp,$_POST['nom'].":".$_POST['mail'].":".$date.":".$_POST['comment']."\n"); fclose($fp);
Ce qui m'ennuie car j'ai une ligne vide qui s'affiche!!!

Qqun a une idée ??? (suis sous windows)

Merci!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 mars 2008, 23:24

peut être ton "\n" dans la ligne insérée.

A chaque ligne, tu sautes une ligne, même la dernière ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Benoit412
Invité n'ayant pas de compte PHPfrance

05 mars 2008, 10:15

peut être ton "\n" dans la ligne insérée.

A chaque ligne, tu sautes une ligne, même la dernière ;)
non car j'en ai besoin afin de signifier que c'est une in de ligne.

Ensuite je récupère avec fgets...

mon fichier ressemble à ça :

elem1-1:elem1-2:elem1-3
elem2-1:elem2-2:elem2-3

Bon j'ai trouvé la parade en scindant la première écriture et ensuite les append

je ne mets pas de \n dans le premier write (1ère ligne) mais bien quand je réouvre mon fichier en append.

Comme ça j'ai plus ma ligne vide à la fin....

Mais j'aimerais savoir pq ! :)

Merci

ViPHP
ViPHP | 3607 Messages

05 mars 2008, 17:09

Il ne faut pas mettre de \n à la fin, mais plutôt au début ;)
En fait la première ligne que tu insères dans ton fichier, tu ne met aucun saut de ligne, et ensuite, tu en rajoute un au début de ta ligne, et tu n'auras donc plus de ligne vide à la fin de ton fichier ;)

ViPHP
ViPHP | 5924 Messages

05 mars 2008, 19:26

Ouais mais du coup tu dois faire un traitement spécial pour la première ligne…
Personnellement, je t'aurais plutôt conseillé de ne pas tenir compte des lignes vides à la lecture :-/