Page 1 sur 1

Comment marche fopen() ?

Posté : 09 sept. 2008, 14:11
par TiFred
Salut,

Il semblerait qu'avec l'option w+ ou r+, les données se mettent à la place des autres (et non au début)
Alors qu'avec a+, cela se rajoute après !

Comment faire pour écrire au début du fichier en gardant ce qui y est déjà ?
Merci

Posté : 09 sept. 2008, 14:23
par _activmik
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, il tente de le créer.

r+ : Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.

Re: Comment marche fopen() ?

Posté : 09 sept. 2008, 15:34
par caroube
Comment faire pour écrire au début du fichier en gardant ce qui y est déjà ?
On ne peut pas. Du moins automatiquement.
Il faut donc que tu lises tes données dans le fichier en mémoire (fopen, fread), que tu génères le fichier à réécrire en mettant les données dans le bon ordre et que tu récrives l'ensemble des données (fopen, fwrite).

Posté : 09 sept. 2008, 16:09
par TiFred
C'est bien l'impression que j'avais

mais alors à quoi servent w+ et r+ ?

Posté : 09 sept. 2008, 16:16
par sadeq
Sans fopen :
$nouvelles_données = "Bla bla";
$données_existantes = file_get_contents("mon_fichier.txt");
file_put_contents("mon_fichier.txt", $nouvelles_données . $données_existantes);

Posté : 10 sept. 2008, 13:43
par TiFred
Sans fopen :
$nouvelles_données = "Bla bla";
$données_existantes = file_get_contents("mon_fichier.txt");
file_put_contents("mon_fichier.txt", $nouvelles_données . $données_existantes);
Merci je vais tester ça
ça semble beaucoup plus simple en plus

Posté : 11 sept. 2008, 13:29
par TiFred
En effet, c'est très bien

Merci