[PHP]Placer le pointeur au debut du fichier

Placer le pointeur au debut du fichier [PHP] - Programmation

Marsh Posté le 20-03-2002 à 08:17:09    

Voila en fait j'aimerai bien placer le pointeur au debut du fichier, pour ajouter du texte au fichier, et qu'il se mette avant celui que j'avais deja rentrer..
voila le code deja existant, mais qui se contente decrire a la fin du fichier

Citation :


$fp=fopen("msg/list.dat", 'a';) or die("$errormsg" );
fwrite($fp,"test" );
fclose($fp);


---------------
::: Nutelaa :::
Reply

Marsh Posté le 20-03-2002 à 08:17:09   

Reply

Marsh Posté le 20-03-2002 à 10:09:18    

suffit de regarder la doc pour l'ouverture au début du fichier
 [:sh@rdar]  
 
pour le reste, tu lis le contenu, tu concatène et tu réécris.

9.28.30 fopen  
[Notes en ligne] [Exemples]
Ouverture d'un fichier ou d'une URL
 
int fopen (string filename, string mode, int use_include_path )  
Si filename commence par "http://" (insensible à la casse), une connexion HTTP 1.x est ouverte avec le serveur spécifié, et un pointeur sur la réponse fournie est retourné. Une en-tête 'Host:' est envoyé avec la requête, afin de gérer les virtual hosts basés sur les noms.  
Notez que le pointeur de fichier retourné représente le corps de la réponse, et qu'il n'est pas possible d'accéder aux en-têtes HTTP avec cette fonction.  
Les versions antérieures à PHP 4.0.6, ne gère pas les redirections automatiques, ce qui oblige à ajouter les slash finaux "/" pour indiquer un dossier.  
Si filename commence par "ftp://" (insensible à la casse), une connexion FTP est ouverte avec le serveur spécifié, et un pointeur sur la réponse fournie est retourné. Si le serveur ne supporte par le mode FTP passif, fopen() échouera. Vous pouvez ouvrir des fichiers en lecture seulement, ou en écriture seulement (le full duplex n'est pas supporté).  
Si filename commence par "php://stdin", "php://stdout", ou "php://stderr", le flot correspondant sera ouvert. (Cela a été introduit en PHP 3.0.13; dans les anciennes versions, les fichiers "/dev/stdin" ou "/dev/fd/0" devaient être utilisés pour accéder à ces flots).  
Si filename commence par n'importe quoi d'autre, PHP tentera de lire ce fichier dans le système local, et un pointeur sur le fichier ouvert sera retourné.  
Si l'ouverture échoue, fopen() retourne FALSE.  
mode peut prendre les valeurs suivantes :  
 
'r' - Ouvre en lecture seule, et place le pointeur de fichier au début du fichier.  
 
'r+' - Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.  
 
'w' - Ouvre en écriture seule; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.  
 
'w+' - Ouvre en lecture et écriture; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.  
 
'a' - Ouvre en écriture seule; place le pointeur de fichier à la fin du fichier file. Si le fichier n'existe pas, on tente de le créer.  
 
'a+' - Ouvre en lecture et écriture; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.  


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 20-03-2002 à 10:15:09    

Nutelaa a écrit a écrit :

Voila en fait j'aimerai bien placer le pointeur au debut du fichier, pour ajouter du texte au fichier, et qu'il se mette avant celui que j'avais deja rentrer..
voila le code deja existant, mais qui se contente decrire a la fin du fichier

Citation :


$fp=fopen("msg/list.dat", 'a';) or die("$errormsg" );
fwrite($fp,"test" );
fclose($fp);

 




 
tu ne peux pas écrire directement au début du fichier... il faut que tu extrais le contenu du fichier dans une string avant, ensuite concaténer avec ce que tu veux rajouter et écrire le tout dans ton fichier.

Reply

Marsh Posté le 20-03-2002 à 10:17:33    

dropsy a écrit a écrit :

 
 
tu ne peux pas écrire directement au début du fichier... il faut que tu extrais le contenu du fichier dans une string avant, ensuite concaténer avec ce que tu veux rajouter et écrire le tout dans ton fichier.  




 
je t'ai grillaid :D


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 20-03-2002 à 10:20:24    

Sh@rdar a écrit a écrit :

 
 
je t'ai grillaid :D  




 
tout de suite, l'autre....
comment il se la pète :D
 
 
 :cry:

Reply

Marsh Posté le 20-03-2002 à 10:24:57    

dropsy a écrit a écrit :

 
 
tu ne peux pas écrire directement au début du fichier... il faut que tu extrais le contenu du fichier dans une string avant, ensuite concaténer avec ce que tu veux rajouter et écrire le tout dans ton fichier.  




wai et jfais comment? :D


---------------
::: Nutelaa :::
Reply

Marsh Posté le 20-03-2002 à 10:28:13    

[:sh@rdar]
 
tu regarde à  
 
lit le contenu d'un fichier
écrit dans un fichier


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 20-03-2002 à 10:28:39    

eh?


---------------
::: Nutelaa :::
Reply

Marsh Posté le 20-03-2002 à 10:32:03    

Nutelaa a écrit a écrit :

eh?  




 
et tu te demmerdes un peu  :D  
faut bien se débrouiller seul ou jour ou l'autre.


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 20-03-2002 à 10:32:26    

we mais bon :/
pke j'ai test avec fseek() mais ca a l'air de foiré


---------------
::: Nutelaa :::
Reply

Marsh Posté le 20-03-2002 à 10:32:26   

Reply

Marsh Posté le 20-03-2002 à 10:34:13    

je suis trop généreux
 
les fonctions dont tu as besoin sont :
 
fopen()
fgets()
fseek()
fputs()
fclose()
 
en plus c'est dans l'ordre d'utilisation !


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 20-03-2002 à 10:35:06    

we jvais test merci ;)


---------------
::: Nutelaa :::
Reply

Marsh Posté le 20-03-2002 à 10:38:17    

au fait c quoi la difference entre fputs() et fwrite() ??


---------------
::: Nutelaa :::
Reply

Marsh Posté le 20-03-2002 à 10:43:26    

LA DOC ! (elle est faite pour ça)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 20-03-2002 à 10:47:51    

Citation :

<?
$fp=fopen("temp.txt", 'w';) or die("$errormsg" );
$char=fgets($fp,256);
fputs($fp," nouvo texte2 \n $char" );
fclose($fp);
?>


jcomprend pas pk ca foire ca !


---------------
::: Nutelaa :::
Reply

Marsh Posté le 20-03-2002 à 10:52:11    

Nutelaa a écrit a écrit :

Citation :

<?
$fp=fopen("temp.txt", 'w';) or die("$errormsg" );
$char=fgets($fp,256);
fputs($fp," nouvo texte2 \n $char" );
fclose($fp);
?>


jcomprend pas pk ca foire ca !  




 
qu'est ce qui ne marche pas ?
t'as quoi comme erreur ?
t'as les droits sur le fichier ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 20-03-2002 à 10:54:48    

Citation :

<?
$fp=fopen("temp.txt","r+" );  
$char=fgets($fp,256);  
fseek($fp,0);  
fputs($fp,"nouvo \n $char" );
echo "$char";
fclose($fp);  
?>


bon j'ai reussi a faire ca mais le probleme c'est que ca lit que la premiere ligne du fichier..
ya pas plus simple pke si jdoit faire un truc encore pour lire ts le fichier ca va compliquer tout :/


---------------
::: Nutelaa :::
Reply

Marsh Posté le 20-03-2002 à 10:56:45    

ohllala mais explique ce que tu veux, quel est le but de ton script ?
 
tu pourrais pas plutôt écrire à la fin du fichier ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 20-03-2002 à 10:57:55    

ben le but c'est de faire une liste de message qui va du plus recent au plu vieux.. donc le plus recent doit etre dans le debut du fichier et le plus vieux.. a la fin ;)


---------------
::: Nutelaa :::
Reply

Marsh Posté le 20-03-2002 à 10:59:14    

e tu écris ça comment ? sous forme de variable avec un include après ?
 
tu pourrais pas utiliser une base de données plutôt ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 20-03-2002 à 11:05:54    

nan ya pas de base de donnée.. ben jecrit ca comme cke jviens de te montrer lol..
Le seul truc ke je cherche c comment lire tout le fichier avec fgets()


---------------
::: Nutelaa :::
Reply

Marsh Posté le 20-03-2002 à 11:59:19    

Nutelaa a écrit a écrit :

nan ya pas de base de donnée.. ben jecrit ca comme cke jviens de te montrer lol..
Le seul truc ke je cherche c comment lire tout le fichier avec fgets()  




 
c marrant comme le monde info est petit. Moi j'avais le même pbm que toi pour mes fichiers log :hello:  
bah, je me suis pas pris la tête, je l'ai classé par ordre chronologique inversé :D et puis ça doit être plus rapide aussi...
 
enfin, c pas ce que tu veux, donc:
<?php
// Lit un fichier, et le place dans une chaîne
  $filename = "/usr/local/quelquechose.txt";
  $fd = fopen($filename, "r" );
  $contents = fread($fd, filesize ($filename));
  fclose($fd);
?>
$contents contient le contenu du fichier.
 
donc ensuite:
$contents = "ta nouvelle ligne de txt\n".$contents;
 
puis zou ton fwrite.

Reply

Marsh Posté le 20-03-2002 à 14:05:23    

merci ;)


---------------
::: Nutelaa :::
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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