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 !
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
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 :
cela donne :
Ecriture terminé
ma chaine de caractèresma chaine de caractèresma chaine de caractères
dans ce cas :
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.