Ecriture dans un fichier text

StiriX Messages postés 67 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 2 septembre 2009 - 1 févr. 2006 à 14:17
StiriX Messages postés 67 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 2 septembre 2009 - 2 févr. 2006 à 17:46
Bonjour all, voici mon probleme:





J'écris dans un fichier texte des données recu à partir d'un
formulaire. Probleme lors de l'écriture les nouveaux données sont écris
en fin de page. Peut-on les écrires en début ?



// mon code d'enregistrement dans un fichier text.

$articles="mon text";

$fp = fopen ("lefichier.txt", "a");

fwrite ($fp, "$articles");

fclose ($fp);



Je m'explique mieux.

Si je rentre 1 je valide , puis 2 je valide puis 3 je valide, le fichier ora pour contenu:

1

2

3

comment obteni

3

2

1 ????????????? voila mon probleme !!

merci !!

13 réponses

cs_sjon Messages postés 861 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 29 novembre 2006 1
1 févr. 2006 à 14:59
Sael og blesuð



$fp = fopen ("lefichier.txt", "x+");



cf http://fr.php.net

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Birgir Sigurðssón aka Sjón
0
StiriX Messages postés 67 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 2 septembre 2009
1 févr. 2006 à 22:33
éh bien j'ai essayé mais le probleme est que le contenu de mon fichier
texte est totalement effacé puis remplacer par la nouvelle chose qui a
été entré. Comment faire pour qu'il n'efface pas tout mais qu'il se
place quand même en début de fichier ?
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
2 févr. 2006 à 01:35
hum voici un script que j ai fait qui est un tchat miniature ...il y a quelques trucs a modifier et j avoue qu il ne marche pas si on lance le script et si on l actualise je sais ^^ mais ca peut t aider ...je te laisse le soin de comprendre le cas échéant je t aiderais ^^

<html>
<head>
<center>Mini t'chat</center>

</head>

<?php
function formulaire(){
echo "<form name="form_formulaire" method="post" action="tchat.php">";
echo "<center>\";
echo \"----
";
echo "Pseudo :";
echo ", ";
echo "";
echo ", \";
echo \"";
echo "Dire :";
echo ", ";
echo "";
echo ", , \";
echo "
</center>";
}
$fichier="tchat.txt";
if (file_exists($fichier)){
//il existe
if(isset($_POST["dire"])){
$pseudo=$_POST["pseudo"];
$chat=$_POST["chat"];
$content_add=$pseudo." a dit :".$chat;
$handle = fopen($fichier,'r+');
echo $content = fread($handle,filesize($fichier));
echo "
";
echo $content_add;
$handle = fopen($fichier,'w+');
$newcontent=$content."
".$content_add;
fputs($handle, $newcontent);
formulaire();
fclose($handle);
}
else{
$handle = fopen($fichier,'r');
echo $content = fread($handle,filesize($fichier));
formulaire();
fclose($handle);
}
}
else{
//il n existe pas
$handle = fopen($fichier,'w+');
fclose($handle);
formulaire();
}
?>

</html>

-------------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
0
StiriX Messages postés 67 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 2 septembre 2009
2 févr. 2006 à 11:55
Oui donc j'ai testé le mini chat. Toujours le même probleme. Tout est
sauvegardé a la fin !!! On peu pas inverser sa ou koi loooool ???? help
helpppp!!! merci kan mm je prend note de la source ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jackrichard Messages postés 43 Date d'inscription mardi 24 mai 2005 Statut Membre Dernière intervention 2 novembre 2008
2 févr. 2006 à 12:18
hello StiriX

en fait c le mode d'ouverture "a" qui dés l'ouverture place le pointeur(la ou tu va écrire) a la fin donc je conseil d'utiliser la fonction rewind() elle prend en paramètre le descripteur de fichier et place le pointeur au début du fichier

ca devrait donner ca ton code

$articles="mon text";
$fp = fopen ("lefichier.txt", "a");
rewind($fp) ;
fwrite ($fp, "$articles");
fclose ($fp);
0
StiriX Messages postés 67 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 2 septembre 2009
2 févr. 2006 à 12:30
j'ai testé ta soluce mais toujours le mm probleme ça écrit en fin de
fichier. toujous pas de changement pourtant meme sur php.net ils disent
que "rewind" doit envoyer en debut du fichier. pk ça marche pas ? snif
:'( HELP !!!!!!! merci quand meme
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
2 févr. 2006 à 12:44
pour ecrire dans un fichier au debut de ce fichier il faut utiliser 'w+'
w+ permet de vider le fichier
essaye ca ...
$handle = fopen($fichier,'r+');
$content = fread($handle,filesize($fichier));
$handle = fopen($fichier,'w+');
echo $newcontent=$content_add."
".$content;
fputs($handle, $newcontent);
fclose($handle);

a vu de nez ca ecrit l ancien contenu "en bas" du nouveau(il faudra verifier avec le echo que j ai mit.
-------------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
0
cs_sjon Messages postés 861 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 29 novembre 2006 1
2 févr. 2006 à 13:01
Sael og blesuð



$fp = fopen ("lefichier.txt", "ax+");



cf http://fr.php.net



Vous pouvez cumuler ... :-)



Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Birgir Sigurðssón aka Sjón
0
StiriX Messages postés 67 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 2 septembre 2009
2 févr. 2006 à 13:09
Avec ax+ toujours pareil. Le contenu est bien copié mais est placé en
fin. J'ai beau essayé tout ce qui est sur phpnet, même s'il dise que
c'est placé en début soit sa efface tout soit sa se place en fin ....
bizarre !!! c tristounet tout sa loool

:p
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
2 févr. 2006 à 13:44
tu as essayé ce que j ai mit ?si oui est ce que ca va et que'est ce qui ne va pas ?
-------------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
0
StiriX Messages postés 67 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 2 septembre 2009
2 févr. 2006 à 13:47
oui j'ai essayé mais plusieurs variable ne sont pas reconu. comme
content_add. D'autre erreur sorte et l'enregistrement n'a pa lieu :/
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
2 févr. 2006 à 14:29
hum ce que tu peut fairesinon, c'est mettre un separateur et utiliser la fonction explode apres et ca je sais pas faire , rechercher le nombre d occurence de separateur qu'il y a dans ta chaine pour savoir le nombre de fois a afficher en lisant a partir de la fin cette chaine.
excuse la je sais plus
0
StiriX Messages postés 67 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 2 septembre 2009
2 févr. 2006 à 17:46
euh jvois pas trop cke tu entend par la fonction explode je connais pas non plus !

Bon bah si quelqu'un connait la réponse ma fois qu'il la poste sa
aidera tout ceux qui en ont besoin d'ont moi loool. merci a ceux qui on
posté ;)
0
Rejoignez-nous