Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/10/2007, 18h01   #1
Invité de passage
 
Inscription : septembre 2005
Messages : 17
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 17
Points : 2
Points : 2
Par défaut Extraire chaine d'un fichier texte

Bonjour à tous,

Je souhaiterais savoir s'il est possible de d'extraire d'un fichier texte toutes les valeurs comprises entre deux caractères et de les lister dans un tableau (ou les uns à la suite des autres avec caractère de séparation).

Voici mon cas concrêt :

j'ai un fichier log qui comprend des noms et des chiffres sous cette forme là :

" ...utilisateur = JD(05t) 433152 octets, 09/28/07 09:16 (Jean DUPONT [])
Analyse [...] 4421 ko sont utilises par le message de l'utilisateur..."

puis plus bas


" ...utilisateur = PM(05t) 433152 octets, 09/28/07 09:16 (Pierre Martin [])
Analyse [...] 6421 ko sont utilises par le message de l'utilisateur..."

J'aimerais savoir s'il existe un moyen, en utilisant l'analyse de chaine de caractères de faire la chose suivante :

1 - Extraire le nom compris entre "(" et "[])"
2 - Extraire la valeur en ko mentionnées plus bas (ex n caractères avant "ko")
3 - Afficher tout celà dans un tableau pour obtenir un truc du genre

Jean DUPONT 4421 ko
Pierre MARTIN 6421 ko

ou éventuellement
Jean Dupont;4421ko
Pierre Martin;6421ko
etc...

Est-ce possible et comment procéder ?

Merci d'avance

Chris
eknd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2007, 22h01   #2
Membre éclairé
 
Avatar de Huntress
 
Inscription : août 2004
Messages : 454
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 454
Points : 339
Points : 339
Bonsoir,

Tu peux faire çà grâce aux regex (regular expression - expression régulière). Il y a des FAQ et des tutoriels également sur ce site. Je te conseille de les lire et ce dans tous les sens car c'est un sujet (je trouve) assez complexe et très très utile.

Tu devras donc apprendre à faire un masque pour trouver les expressions régulières que tu souhaites capturer
Ensuite tu utilises la fonction preg_match_all, qui elle te donne un tableau en sortie... ensuite tu l'exploites comme tu veux.

Prends ton courage à 2 mains c'est un mauvais moment à passer
Si vraiment t'es perdu, reviens sur le forum, il y a de temps en temps des têtes en regex qui passent.
__________________

Règle n°1 du forum francophone : Parler le français...
Pas de question technique par MP, le forum est fait pour çà, merci.
Huntress est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 08h38   #3
Invité de passage
 
Inscription : septembre 2005
Messages : 17
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 17
Points : 2
Points : 2
Merci beaucoup pour ces infos, je retrousse mes manches et mes babines et m'attaque au sujet...

Chris
eknd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2007, 16h35   #4
Membre confirmé
 
Inscription : juillet 2007
Messages : 201
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 201
Points : 227
Points : 227
Tu peux lire tous les caracteres de ton fichier et les analyser un par un et quand tu tombes sur le 1er caractere tout ce qui suit tu les mets dans une variable jusqu'à la prochaine caracteres de fin que tu auras definis.ensuite tu le mets dans ton tableau à la fin tu affiches ton tableau.... fgets() ,fgetc()
acirfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h24.


 
 
 
 
Partenaires

Hébergement Web