Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2919 connectés 

 


Dernière réponse
Sujet : [PHP]Placer le pointeur au debut du fichier
Nutelaa merci ;)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Nutelaa merci ;)
dropsy

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.

Nutelaa 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()
Sh@rdar 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 ?
Nutelaa 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 ;)
Sh@rdar ohllala mais explique ce que tu veux, quel est le but de ton script ?
 
tu pourrais pas plutôt écrire à la fin du fichier ?
Nutelaa

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 :/

Sh@rdar

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 ?

Nutelaa

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 !

Sh@rdar LA DOC ! (elle est faite pour ça)
Nutelaa au fait c quoi la difference entre fputs() et fwrite() ??
Nutelaa we jvais test merci ;)
Sh@rdar 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 !
Nutelaa we mais bon :/
pke j'ai test avec fseek() mais ca a l'air de foiré
Sh@rdar

Nutelaa a écrit a écrit :

eh?  




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

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

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

dropsy

Sh@rdar a écrit a écrit :

 
 
je t'ai grillaid :D  




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

Sh@rdar

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

dropsy

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.

Sh@rdar 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.  
Nutelaa 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);


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)