PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 16-08-2010 15:39:19

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Ecrire au milieu d'un fichier .txt

Bonjour à vous tous,

Je voudrais écrire quelque part au milieu d'un très long fichier txt et je ne sais pas trop quelle démarche adopter...
Je sais lire un fichier, déplacer le curseur à l'endroit voulu, puis écrire qc.

Ceci a pour résultat d'écraser la section du texte précédent par l'actuel, et non pas d'insérer.

Je sais également qu'il faut garder en mémoire le texte ancien à partir du pointeur où l'on commence à écrire, puis
ajouter cette section au reste du texte nouvellement mis à jour. C'est justement cette étape qui me pose problème.

Faut-il? :

1) lire le tout

$file = file_get_contents ( 'abc.txt' );

2) se déplacer (de 1000 caractères p.ex) et insérer le texte

fseek($file, 1000);
fwrite($file, 'salut');

3) relire le tout à partir du pointeur (et jusqu'à la fin, admettons au caractère 2000)

$file_2 = file_get_contents ( $file, NULL, NULL,  1000, 2000);

4) finir d'écrire l'ensemble

fseek($file, 1000); fwrite($file, $file_2);

Cela me semble bien pénible lorsque, comme pour mon cas, le fichier est très long (400ko) et possède de très nombreuses transformations.
Quelqu'un aurait-il une façon plus appropriée de gérer ce genre de cas?

Hors ligne

#2 16-08-2010 16:32:39

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Ecrire au milieu d'un fichier .txt

>>Quelqu'un aurait-il une façon plus appropriée de gérer ce genre de cas?
oui, une base de données est fait pour stocker et manipuler une grande qte d'information wink
a++

Hors ligne

#3 16-08-2010 18:10:55

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Re : Ecrire au milieu d'un fichier .txt

Oui, bon.
C'est un cas particulier.

Hors ligne

#4 16-08-2010 19:40:51

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Ecrire au milieu d'un fichier .txt

Bonjour,

Le plus simple : str_replace() ou preg_replace() sont tes amis wink

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums