Ecriture dans un fichier text

Signaler
Messages postés
67
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 septembre 2009
-
Messages postés
67
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 septembre 2009
-
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

Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
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
Messages postés
67
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 septembre 2009

é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 ?
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
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
Messages postés
67
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 septembre 2009

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 ;)
Messages postés
43
Date d'inscription
mardi 24 mai 2005
Statut
Membre
Dernière intervention
2 novembre 2008

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);
Messages postés
67
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 septembre 2009

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
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
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
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
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
Messages postés
67
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 septembre 2009

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
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
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
Messages postés
67
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 septembre 2009

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 :/
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
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
Messages postés
67
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 septembre 2009

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é ;)