Extraction de données par php

cs_g_marvin Messages postés 17 Date d'inscription vendredi 9 juillet 2004 Statut Membre Dernière intervention 3 octobre 2005 - 7 sept. 2005 à 15:37
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 8 sept. 2005 à 19:46
J'ai donc réussi à lire un fichier texte (par exemple tati.txt) à partir d'une page php de cette façon :

<? $Fnm = "tati.txt"; ?>
<? $tableau = file($Fnm); ?>
<? while(list($cle,$val) = each($tableau)) {
echo $val."
";
} ?>

Comment faire pour qu'il s'arrete de lire dès qu'il a fini de prendre indentifiant ainsi de suite ?
exemple de mon fichier:
ligne1
GD61379 44685326SUSANNE LOSKOW HAMMER 02/04/1981F16/10/2003 814GROSS GERAU GROSS GERAU RMLA
----------------------------------------------------------------------------------------------------------------------
ligne2
U215598 44751642TANJA FROSCHEL FRISKE 19/05/1971F01/01/1999 814HAMBURG HAMBURG RMLA

--------------------------------------------------------------------------------------------------------------------
ligne3
44823106LIBOR HORACEK 10/04/1974M01/07/2005 833KOLIN AUTOMOTIVE KOLIN AUTO. PVNO

signification des éléments du fichier
Identifiant \code AGAPE //nom \prénom\second prénom\date de naissance//sexe//date de début//date de fin//code Agence//région \service \nom Agence.

Ainsi je fais un tableau et dans une case il va lire jusqu'à ce qu'il tombe à un : et dans une autre case à côté il lit la suite jusqu'au prochain et ainsi de suite ....
Et le petit plus si possible : dès que dans le fichier tati.txt passe à la ligne ( je veux dire chaque nouvelle ligne), j'aimerai que'il passe à la ligne dans mon fichier PHP. Bon ce saut de ligne c'est le petit plus. Mais comment faire pour ma première idée ? Pouvez vous me donner l'élément manquant dans mon code php ?

7 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
7 sept. 2005 à 16:16
Salut!

Je comprends pas trop ce que tu veux, tu peux ré-expliquer.



Quelques petits trucs:

- on utilise pas <?, qui posent des problèmes de compatibilité sur certains serveurs, mais <?php

- un <?php et début de code php et un ?> à la fin suffisent, pas besoin d'un pour chaque élément



@++



R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 sept. 2005 à 16:34
Hello,



tu ne peux pas arrêter la lecture du fichier selon un truc trouvé dans
le fichier. TU dois le lire en entier, après, éventuellement, parser ce
que tu as récupéré pour tronquer au bon endroit. Puis le mettre dans
ton tableau comme tu le désires.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
7 sept. 2005 à 17:23
Salut,



$fichier=file_get_contents('fichier.txt');



$fichier=explode('---------------------------------',$fichier);



etc...



$fichier étant un tableau t'as toutes tes valeurs dedans maintenant :



$fichier[0], $fichier[1], etc...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
8 sept. 2005 à 00:00
salut,

file() lit le fichier et renvoie le résultat sous forme de tableau.
Chaque ligne du fichier est donc dans ce tableau avec comme clé le
numéro de la ligne dans le fichier (chose que tu as bien pigé
apparemment).

Donc dans ta boucle qui parcours chaque ligne du 'fichier', $val est bien ta ligne.

Puisque chaque ligne a un format identique, tu pourrais passer par une
expression régulière pour récupérer le contenu que tu as d'ailleurs
bien identifié. Je te conseille donc cette fonction
http://fr.php.net/manual/fr/function.preg-split.php qui te permet
d'obtenir chacun de tes éléments dans un tableau (maintenant il te
reste à trouver l'expression régulière pour une ligne)...

voilà
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 sept. 2005 à 19:05
L'expression régulière est inutile ici et plus couteuse en perfs que le
simple explode que j'ai proposé ci dessus, vu que les lignes sont
séparées apparemment par un même nombre de tirets :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
8 sept. 2005 à 19:26
oui c'est sur mais justement on sait pas vraiment si les lignes sont
séparées par des pointillés (ce que je ne pense pas) au vu de sa
manière de récupérer toutes les lignes à l'aide de file...

si c'est le cas tu as tout à fait raison mais ça ne l'aide pas à récupérer, l'id d'une ligne, le nom, le prénom,etc...

si c'est son besoin ta solution proposée reste à compléter
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 sept. 2005 à 19:46
Bah si c'est le cas on en est au même point :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
Rejoignez-nous