fonction feof (), ecriture sur un fichier texte

fonction feof (), ecriture sur un fichier texte - PHP - Programmation

Marsh Posté le 08-04-2006 à 18:50:20    


 
bonsoir,
 
j'écris un formulaire avec un champ textarea et un bouton submit qui appele un script php  pour ecrire le contenu du textearea dans un fichier .txt, et je voudrais pouvoir écrire après le contenu du fichier texte si celui-ci n'est pas vide

Code :
  1. <html>
  2. <head>
  3. <title>ecriture sur le fichier texte</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6. <body>
  7. <?
  8. //ecriture
  9. $fichier=fopen("fichier.txt","w" );
  10. fput($fichier,$texte);
  11. do {
  12. $test=fput($fichier,$texte);
  13. echo "$test";}
  14. while (feof($fichier)) ;
  15. ?>
  16. </body>
  17. </html>


---------------
blog Bretagne
Reply

Marsh Posté le 08-04-2006 à 18:50:20   

Reply

Marsh Posté le 08-04-2006 à 19:27:47    

euhhh .... d'ou viens ta variable $texte ?

Reply

Marsh Posté le 08-04-2006 à 20:05:34    

elle vient de mon <textarea name="texte"> de mon formulaire en html (j ai deux fichiers)...


---------------
blog Bretagne
Reply

Marsh Posté le 08-04-2006 à 20:17:58    

Dans la catégorie "j'ai fait une bête faute, 'scusez moi", je voudrais le fputs soudainement devenu fput :D

Reply

Marsh Posté le 08-04-2006 à 20:42:40    

même avec la fonction fputs() çà marche pas.


---------------
blog Bretagne
Reply

Marsh Posté le 08-04-2006 à 22:46:47    

shyboy a écrit :

même avec la fonction fputs() çà marche pas.


 
C'est dommage.
 
Plus sérieusement, t'as pensé à jeter un oeil à la doc de la fonction fopen ? Parce dans de lointains souvenirs, y a bien un paramètre pour préciser qu'on ouvre le fichier et qu'on place le pointeur à la fin de celui-ci ("a" il me semble). Là, tu ouvres le fichier et tu écris direct dedans, avant même d'avoir récupérer ce qui aurait pu s'y trouver (et je vois pas l'intérêt de la boucle dans laquelle tu écris toujours la même chose que ce que tu as déjà écrit hors de la boucle)  :hello:

Reply

Marsh Posté le 08-04-2006 à 23:49:40    

comment tu ferais toi? pour placer le ponteur à la fin du fichier (si celui-ci à déjà un contenu).


---------------
blog Bretagne
Reply

Marsh Posté le 09-04-2006 à 00:12:50    

C'est bien 'a' qu'il faut mettre.
cf http://fr3.php.net/manual/fr/function.fopen.php


Message édité par gooopil le 09-04-2006 à 00:13:03
Reply

Marsh Posté le 09-04-2006 à 00:45:20    

Cette ligne:

Code :
  1. while (feof($fichier)) ;


indique:
<<boucler tant que le fichier est à la fin>>
A priori, le fichier est à la fin puisque tu vient d'y écrire quelquechose. Aussi la boucle attends que la page soit appelée à nouveau (sûrement par un autre internaute) pour se terminer.

Reply

Marsh Posté le 09-04-2006 à 03:27:35    

shyboy a écrit :

bonsoir,
 
j'écris un formulaire avec un champ textarea et un bouton submit qui appele un script php  pour ecrire le contenu du textearea dans un fichier .txt, et je voudrais pouvoir écrire après le contenu du fichier texte si celui-ci n'est pas vide

Code :
  1. <html>
  2. <head>
  3. <title>ecriture sur le fichier texte</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6. <body>
  7. <?
  8. //ecriture
  9. $fichier=fopen("fichier.txt","w" );
  10. fput($fichier,$texte);
  11. do {
  12. $test=fput($fichier,$texte);
  13. echo "$test";}
  14. while (feof($fichier)) ;
  15. ?>
  16. </body>
  17. </html>



Tu fais un formulaire (form.html) qui envoie le textarea a un script php (script.php)
Form.html :

Code :
  1. <HTML>
  2. <HEAD>
  3. <TITLE>Le Titre de ta page...</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <CENTER>
  7. <form action="script.php" method="POST">
  8. <TEXTAREA name="letextarea" rows="10" COLS="40"></TEXTAREA><br>
  9. <input type="submit" value="Envoyer">
  10. </form>
  11. </CENTER>
  12. </BODY>
  13. </HTML>


 
Script.php:  

Code :
  1. <?php
  2. $textarea = $_POST['letextarea'];
  3. $data = $textarea."
  4. "."___________________________";
  5. $fichier = fopen("fichier.txt", "a" );
  6.            fputs($fichier, $data);
  7.     fclose($fichier);
  8. ?>


Pourquoi se casser la tete quand on peut faire simple? :D  
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed