Comment marche fopen() ?

Eléphanteau du PHP | 49 Messages

09 sept. 2008, 14:11

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
TiFred
Apprenti webmaster

Eléphant du PHP | 169 Messages

09 sept. 2008, 14:23

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.
Modifié en dernier par _activmik le 09 sept. 2008, 17:16, modifié 1 fois.

Eléphant du PHP | 422 Messages

09 sept. 2008, 15:34

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).

Eléphanteau du PHP | 49 Messages

09 sept. 2008, 16:09

C'est bien l'impression que j'avais

mais alors à quoi servent w+ et r+ ?
TiFred
Apprenti webmaster

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

09 sept. 2008, 16:16

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);
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 49 Messages

10 sept. 2008, 13:43

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
TiFred
Apprenti webmaster

Eléphanteau du PHP | 49 Messages

11 sept. 2008, 13:29

En effet, c'est très bien

Merci
TiFred
Apprenti webmaster