Page 1 sur 2

comment rajouter un texte à la fin du fichier en conservant

Posté : 03 nov. 2008, 23:43
par tounse
bonjour

avec ce script la chaine de carctère se met à la fin du fichier, mais les uns à coté des autres ?

comment faire pour les mettre les uns en dessous des autres ?
<?php 

$f = 'compteur.txt'; 
$text = "ma chaine de caractères"; 
$handle = fopen($f,"a+"); 

// regarde si le fichier est accessible en écriture 
if (is_writable($f)) { 
// Ecriture 
    if (fwrite($handle, $text) === FALSE) { 
      echo 'Impossible d\'écrire dans le fichier '.$f.''; 
      exit; 
    } 
    
    echo 'Ecriture terminé <br />'; 
    
    fclose($handle); 
                    
} 
else { 
      echo 'Impossible d\'écrire dans le fichier '.$f.''; 
    } 

 // lecture
if (!($f=fopen("compteur.txt","r"))) 
exit("Impossible d'ouvrir le fichier."); 
while (!feof($f)) 
{ 
$texte=fgetc($f); 
echo $texte; 
} 
fclose($f); 
?> 
merci d'avance

je suis débutant ne php, je progresse petit à petit merci encore

Posté : 03 nov. 2008, 23:57
par Cyrano
tounse, édite donc ton message, sélectionne le bloc de code et clique dans la barre d'outils du formulaire sur le bouton
[/b], ta va voir que ce sera autrement plus facile à lire :-k

Posté : 04 nov. 2008, 00:03
par sylvaing26
Pour faire un retour à la ligne
echo "\n";

/n

Posté : 04 nov. 2008, 00:40
par Invité
ce n'est pas cela ma question !

mais comment rajouter des ligne à la suite desunes des autres dans le fichier

merci

Posté : 04 nov. 2008, 00:53
par zeus
Modération :
tounse, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

tounse, édite donc ton message, sélectionne le bloc de code et clique dans la barre d'outils du formulaire sur le bouton
[/b], ta va voir que ce sera autrement plus facile à lire :-k[/quote]
Merci, mais on s'en occupe. Pour ces cas là, il y a un bouton de signalement [img]http://www.phpfrance.com/forums/templates/subSilver/images/icon_report.gif[/img]

Posté : 04 nov. 2008, 00:55
par zeus
A chaque fois que tu rajoutes une ligne, il faut que tu rajoutes un saut de ligne (\n) à la fin pour que la chaine suivante soit ajoutée à la ligne suivante et pas à coté ;)

Posté : 04 nov. 2008, 01:41
par sylvaing26
Comme je l'avai dit tonnère de Zeus ! :lol:
Pourquoi avant de critiquer ils ne testent pas !

merci à vous 2

Posté : 04 nov. 2008, 10:54
par tounse
echo $texte '<br /><br />'; 
ou
echo $texte '\n';
ne fonctionne pas

merci

Posté : 04 nov. 2008, 11:08
par zeus
tounse, je t'ai déjà demander d'utiliser les balises
 et [CODE].  Ca serait dommage de devoir fermer ton post alors que tu arrives à la solution.

Sinon, dans un fichier texte, le <br /> ne représente pas un saut de ligne, car le fichier texte n'est pas du HTML
Ensuite, le \n n'est reconnu que s'il est entre double-quote (") => "\n" à la place de '\n'

Posté : 04 nov. 2008, 11:13
par caroube
A chaque fois que tu rajoutes une ligne, il faut que tu rajoutes un saut de ligne (\n) à la fin pour que la chaine suivante soit ajoutée à la ligne suivante et pas à coté
Et pour que ce soit lisible sous Windows, il faut mettre \r\n

Posté : 04 nov. 2008, 11:14
par zeus
A chaque fois que tu rajoutes une ligne, il faut que tu rajoutes un saut de ligne (\n) à la fin pour que la chaine suivante soit ajoutée à la ligne suivante et pas à coté
Et pour que ce soit lisible sous Windows, il faut mettre \r\n
Ca dépend du soft utilisé ;)

Posté : 04 nov. 2008, 11:28
par tounse

Code : Tout sélectionner

echo $texte "\n";
cela ne fonctionne pas j'ai un message d'erreur :

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'

merci je ne fais pas preuve de mauvaise volonté, mais ce qui parait simple ...

Posté : 04 nov. 2008, 11:30
par zeus
Il faut concatener ton texte avec le saut de ligne.
En PHP, l'opérateur qui te permet ça est le point (.)

Donc, pour ajouter \n à la fin de ton texte, il faut écrire
echo $texte ."\n";

Posté : 04 nov. 2008, 11:38
par tounse
bizzard :

dans ce cas :

Code : Tout sélectionner

echo $texte;
cela donne :

Ecriture terminé
ma chaine de caractèresma chaine de caractèresma chaine de caractères

dans ce cas :

Code : Tout sélectionner

echo $texte ."\n";
cela donne :

Ecriture terminé
m a c h a i n e d e c a r a c t �� r e s m a c h a i n e d e c a r a c t �� r e s

Posté : 04 nov. 2008, 13:51
par caroube
Ca dépend du soft utilisé
Non. Le standard Windows, c'est Carriage Return / Line Feed.