Recherche ds un fichier texte

Eléphanteau du PHP | 30 Messages

09 févr. 2006, 15:34

Bonjour

voilà je voudrais creer un script pour analyser un fichier texte, et repertorier les informations.

par exemple dans le fichier j'aurais:
[12:30:29] Vous venez de tuer [Nom] !

voilà, je souhaiterai recuperer ce qu'il y a entre crocher, mais d'autres crochets sont présents.

Quelles solutions s'offrent à moi ?

Ce que j'ai fait pour l'instant,
ouvrir le fichier,
le lire et tout mettre ds une variable,
faire un explode sur la chaine avec les '\n'

du coup, maintenant j'ai un tableau, mais je ne sais pas comment l'analyser...

Quelqu'un pourrait m'orienter un peu ?
j'ai cru comprendre qu'il fallait utiliser la fonction eregi(), mais j'ai du mal a comprendre sont fonctionnement...

VaN
Mammouth du PHP | 1107 Messages

09 févr. 2006, 15:53

tu essaie de développer un parser de log pour MMORPG ?

Eléphanteau du PHP | 30 Messages

09 févr. 2006, 15:57

:D
bah je me suis dis que ce se serait une bonne methode pour m'entrainer avec les fichiers .TXT !

(ce sont les logs de Dark Age Of Camelot que je souhaiterai analyser)

Mammouth du PHP | 505 Messages

09 févr. 2006, 17:15

il faut avoir une idée du format général des messages que tu veux analyser...

Ensuite avec une regexp, tu peux isoler les champs que tu souhaites...

ca, par exemple, ca capture toute chaine entre crochet...
$ligne="[12:30:29] Vous venez de tuer [Nom] avec une [hache]! ";
preg_match_all("!\[([^\]]+)]!",$ligne,$res);
var_dump($res[1]);

Code : Tout sélectionner

array(3) { [0]=> string(8) "12:30:29" [1]=> string(3) "Nom" [2]=> string(5) "hache" }

Eléphanteau du PHP | 30 Messages

10 févr. 2006, 14:05

où puis trouver un tuto ou une doc fournit sur l'utilisation des arguments...
preg_match_all("!\[([^\]]+)]!",$ligne,$res);
en effet je met perd ds ces crochets ces circonflexe et c +...
et je crois que c ca qui me pose le plus de probleme