rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

PHP et fichiers texte

Posté par Imer, le lundi 4 septembre 2006 à 15:13:06
Bonjour à tous,
je travaille en PHP et je souhaite insérer une ligne dans un fichier texte immédiatement après une certaine ligne connue grace au mot qu'elle contient.

J'ai un peu de mal à insérer à l'endroit voulu...
Quelqu'un aurait-il une solution?

Merci
Imer
Répondre à Imer  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Imer, le lundi 4 septembre 2006 à 15:34:45
Petite précision :
je parviens à insérer ma ligne dans le fichier texte mais uniquement au début, donc pas la ou je le veux.

Je pense que c'est un problème de positionnement du curseur...
Quelqu'un peut m'aider?

Merci
Imer
Répondre à Imer

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
badboy59, le lundi 4 septembre 2006 à 16:24:20
A mon avis, tu vas devoir déplacer tous le texte qui se trouve derriere la nouvelle ligne à inserer.
37717
Répondre à badboy59

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Imer, le lundi 4 septembre 2006 à 16:54:08
Tu peux m'en dire plus stp?
Répondre à Imer

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
badboy59, le lundi 4 septembre 2006 à 18:32:49
tu enregistres tout ton fichier en mémoire, tu inséres ta ligne puis tu écrases l'ancien fichier texte.
37717
Répondre à badboy59

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Imer, le lundi 4 septembre 2006 à 18:51:37
Ca ok mais c'est l'endroit ou insérer qui me pose problème.
Moi par exemple j'ai un fichier qui contient ça :
a
b
c

Je sais que je veux insérer une ligne toujours après le b. Et c'est ça que je n'arrive pas à faire...

Voila, si vous avez quelques infos à me donner...
Merci
Répondre à Imer

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
fred, le vendredi 5 janvier 2007 à 22:15:17
as tu eu une reponse precisement a ton probleme et partou aucune reponse
Répondre à fred

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jimmyneutron, le samedi 6 janvier 2007 à 05:06:03
Imer n'a pas tord c'est pas évident.
Pour te documenter:

http://fr.php.net/manual/fr/ref.filesystem.php

c'est la bible pour ainsi dire.

il s'agirait de positionner le pointeur là où tu as besoin après l'ouverture du fichier concerné:

tu peux peut-être te servir de la fonction
fgetc -- Lit un caractère dans un fichier
fseek -- Modifie la position du pointeur de fichier
ftell -- Renvoie la position du pointeur du fichier
rewind -- Replace le pointeur de fichier au début

etc...

++

jim
Répondre à jimmyneutron

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
fred, le samedi 6 janvier 2007 à 10:53:33
euh oui c'est vu pourles fonction.
mais c'est quoi la logique dans ce cas. tu peux juste m'expliquer ton algo?
j'ai pas tout compris
Répondre à fred

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Imer, le samedi 6 janvier 2007 à 11:23:19
Salut Fred!

Pour répondre à ta question, ce n'est pas possible d'insérer directement au milieu d'un fichier...

Moi j'ai une solution qui vaut ce qu'elle vaut mais bon... Je ne sais pas si t'es exactement dans le meme cas que moi.
Dans mon cas je sais exactement ou je veux insérer ma ligne.

Pour le cas ou mon fichier ressemble à ca :
a
b
c


Je veux insérer toujours après b

La méthode :
1 --> Je charge le fichier en mémoire
2 --> avec un str_replace je remplace la ligne 'b' par 'b <br> ma nouvelle ligne'
3 --> je réécris le fichier

En réécriture j'ai donc bien :
a
b
ma nouvelle ligne
c



Voila en espérant que mon explication est pas trop flou et qu'elle pourra t'aider.

+ Imer
Répondre à Imer

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
fred, le samedi 6 janvier 2007 à 12:02:32
merci pour ta reponse.
j'ai un peu du mal quand tu dis tu reecris le fichier.
en fait pour moi il s'agit de modifier une ligne donnée.
exemple:
j'avais ds mon fichier
aa
bb
cc
et je veux
aa
bbb
cc
dans mon code j'arrive a modifier correctement ma deuxieme ligne. Sauf que comme j'ai ajouté un caractere, il m'en bouffe un sur la ligne du dessous et j'ai:
aa
bbb
c

(Notez que quand j'ai ajoute mes j'ai mis a la fin le caractere de retour a la ligne "\r\n")

Mon algo:

je parcours mon ficher en lecture ligne par ligne avec fgets(mon pointeur,255) tant que je sui pas a la fin(fonction feof).

quand je suis a l'indice de la ligne a modifier je fais fputs(mon ponteur, "ma louvelle ligne")

mon code:

// On ouvre alors le fichier en lecture-écriture
$pointeur=fopen($Chemin,"r+");

//On parcourt le fichier jusqu'à la ligne correspondnt à l'indice (la
//lige que l'on veut modifer)
$compteur=0;
while (!feof($pointeur))
{
$ligne = fgets($pointeur,255);
//On incremente le cmpteur
$compteur++;
//Si le compteur courant correspond a l'indice de l'endroit ou je veux modifier alor remplace ligne par la ligne modifiée
if($compteur==($id-1))
{
$n="$d|$l|$o|$p";
fputs($pointeur,"$n"."\r\n");
}
}
fclose($pointeur);

}


et toi ta methode permet de charger tout un fichier?? et le modifier en memoire??
Répondre à fred

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Imer, le mardi 9 janvier 2007 à 12:03:38
Je suis au taffe en ce moment, j'essaie de te filer un bout de mon code ce soir...

++
Répondre à Imer

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
samy, le samedi 6 janvier 2007 à 11:54:49
slt a tous

je ne connais absolument rien en PHP, pourriez vous m'aider en m'envoyant un document "autodidacque" a l'adresse suivante svp.

merci.
Répondre à samy
Logiciels pertinents trouvés dans les téléchargements
Télécharger Notepad2 2.1.19Notepad2 - Notepad2 est un blc-note libre possédant des fonctionnalités avancées de coloration syntaxique. <h2>Fonctionnalités</h2>...Catégorie: Traitement de texte
Licence: Freeware/gratuit
Télécharger  ZikiTranslator  1.3.5a ZikiTranslator - De nos jours la traduction d’une langue à une autre est un élément primordial dans la vie quotidienne : études, travail… ...Catégorie: Traduction
Licence: Freeware/gratuit
Télécharger Metapad 3.51Metapad - metapad est un éditeur de texte simple, petit et rapide (et complètement gratuit) avec des fonctionnalités similaires à...Catégorie: Traitement de texte
Licence: Freeware/gratuit
Télécharger ExamDiff 1.8ExamDiff - Ce petit logiciel est capable de comparer le contenu de deux fichiers textes, et d'afficher les différences entre eux avec...Catégorie: Système
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « PHP et fichiers texte »