Placer le pointeur au debut du fichier [PHP] - Programmation
Marsh Posté le 20-03-2002 à 10:09:18
suffit de regarder la doc pour l'ouverture au début du fichier
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.
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
|
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.
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
Marsh Posté le 20-03-2002 à 10:20:24
Sh@rdar a écrit a écrit : je t'ai grillaid |
tout de suite, l'autre....
comment il se la pète
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?
Marsh Posté le 20-03-2002 à 10:28:13
tu regarde à
lit le contenu d'un fichier
écrit dans un fichier
Marsh Posté le 20-03-2002 à 10:32:03
Nutelaa a écrit a écrit : eh? |
et tu te demmerdes un peu
faut bien se débrouiller seul ou jour ou l'autre.
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é
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 !
Marsh Posté le 20-03-2002 à 10:38:17
au fait c quoi la difference entre fputs() et fwrite() ??
Marsh Posté le 20-03-2002 à 10:43:26
LA DOC ! (elle est faite pour ça)
Marsh Posté le 20-03-2002 à 10:47:51
Citation : <? |
jcomprend pas pk ca foire ca !
Marsh Posté le 20-03-2002 à 10:52:11
Nutelaa a écrit a écrit :
|
qu'est ce qui ne marche pas ?
t'as quoi comme erreur ?
t'as les droits sur le fichier ?
Marsh Posté le 20-03-2002 à 10:54:48
Citation : <? |
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
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 ?
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
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 ?
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()
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
bah, je me suis pas pris la tête, je l'ai classé par ordre chronologique inversé 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.
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
$fp=fopen("msg/list.dat", 'a' or die("$errormsg" );
fwrite($fp,"test" );
fclose($fp);
---------------
::: Nutelaa :::