ecriture de donner dans un fichier

ecriture de donner dans un fichier - PHP - Programmation

Marsh Posté le 12-11-2003 à 11:30:27    

Voila jaimerais creer un fichier log.
 
mon probleme c'estque qd j'ecrit les donner dans le fichier, il mecrit tout de bout en bout et j'aimerais kil ecrive chaque ligne les une en dessous des autres.
D'autres part j'aimerais que les donner els plus recente soit au debut du fichier.
 
j'espere ke jai été assez explicite. merci

Reply

Marsh Posté le 12-11-2003 à 11:30:27   

Reply

Marsh Posté le 12-11-2003 à 11:42:14    

pour la première partie, c'est simple, il suffit de rajouter les \n\r (je ne retiens jamais l'ordre), mais pour le deuxième, ce n'est pas possible, il faudrait réécrire complètement le fichier à chaque fois.

Reply

Marsh Posté le 12-11-2003 à 11:44:11    

Pour ton pb de retour a la ligne il suffit d'ecrire un "\n" quand tu veux passer a la ligne suivante.
Pour ton 2eme probleme => http://fr3.php.net/manual/en/funct [...] ntents.php
(2eme commentaire en partant du haut)

Reply

Marsh Posté le 12-11-2003 à 11:46:26    

Par rapport a ce qu'a dit Gizmo => "\n" sous unix ou "\r\n" sous windows ou "\r" sous mac.

Reply

Marsh Posté le 12-11-2003 à 11:47:49    

Pour qu'il ecrive tes données les plus récentes en premier ouvre ton fichier en "r+" (il place le pointeur en debut de fichier) : fopen("***.log","r+" );

Reply

Marsh Posté le 12-11-2003 à 11:50:45    

et il écrase tout le reste...

Reply

Marsh Posté le 12-11-2003 à 11:53:14    

Citation :

Pour qu'il ecrive tes données les plus récentes en premier ouvre ton fichier en "r+" (il place le pointeur en debut de fichier) : fopen("***.log","r+" );


gizmo a écrit :

et il écrase tout le reste...


 
+1
 
Il faut utiliser le meme genre de methode que celle decrite dans les commentaires pour ne pas ecraser le contenu (lire l'ancien contenu, ecrire le nouveau, reecrire l'ancien).


Message édité par impulse le 12-11-2003 à 11:53:41
Reply

Marsh Posté le 12-11-2003 à 12:38:07    

escuze moi, c vrai que ca ecrase le reste, en fait faut que tu lises ton fichier avec un fgets, tu concatenises ta nouvelle valeur avec ce que tu as recuperé avec fgets et que tu l écrives a nouveau dans ton fichier :  
 
$fp=fopen("***.log","r" );
$contenu=fgets($fp,[longueur de ton fichier]);
$fclose($fp);
$nouvocontenu="$tesdonnées"."$contenu"."\n";
$fp=fopen("***.log","r+" );
fputs($fp,$nouvocontenu);
fclose($fp);
 
c'est un peu long mai ca marche :)

Reply

Marsh Posté le 12-11-2003 à 12:44:28    

gaelou22 a écrit :

tu concatenises ta nouvelle valeur avec  


 
parle france stp

Reply

Marsh Posté le 12-11-2003 à 12:45:07    

dans windows, le retourne a la ligne se fais par \r\n dans cette ordre
 

Code :
  1. $msg.="\r\n";
  2. fwrite($fp,$msg);


Message édité par bozocarzu le 12-11-2003 à 12:45:21
Reply

Marsh Posté le 12-11-2003 à 12:45:07   

Reply

Marsh Posté le 12-11-2003 à 12:56:32    

fgets ne prend qu'une ligne, c fread pour lire le fichier entier.

Reply

Sujets relatifs:

Leave a Replay

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