Page 1 sur 1

Récupération de données dans un fichier texte

Posté : 03 mars 2016, 16:32
par Marcbis92
Bonjour,

Je cherche depuis quelques temps a récupérer des données dans un fichier texte et mettre ces données dans une base MySql.
J'ai effectué pas mal de recherche sur internet et j'avoue que je ne sais pas par quel bout prendre ce problème.

Je cherche a récupérer les les chaines de characteres se trouvant a la place des "ZZZZZZ" :
Server Blade #ZZ
Product Name: ZZZZZZZZ
ROM Version : ZZZZZZZZ
Name: ZZZZZZZ
Firmware Version: ZZZZZZZ

Voici un extrait du fichier txt :

Code : Tout sélectionner

bla....bla C7000 [SCRIPT MODE]> SHOW SERVER INFO ALL Server Blade #1 Information: Type: Server Blade Manufacturer: HP Product Name: ProLiant BL460c Gen9 Part Number: 71111-B21 System Board Spare Part Number: 711111-001 Serial Number: xxxxzdesqqsdqsd Serial Number (Logical): UUID: 123456-3562-5G563-3289-33458764 UUID (Logical): 00000000-0000-0000-0000-000000000000 Server Name: Toto Asset Tag: [Unknown] ROM Version: I36 09/24/2015 Boot Mode: Legacy CPU 1: Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz (10 cores) CPU 2: Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz (10 cores) Memory: 393216 MB FLB Adapter 1: HP Ethernet 10Gb 2-port 560FLB Adapter Port 1: AA:BB:CC:DD:EE:FF NIC 1: AF:BB:CC:DD:EE:FF This server does not contain any mezzanine cards Management Processor Information: Type: iLO4 Name: Toto Firmware Version: 2.30 Aug 19 2015 IP Address: 1.1.1.1 MAC Address: 11:11:B1:01:11:11 Power Management Controller Version: 1.0.9 iLO Federation Capable: Yes Management Processor IPv6 Information: Link Local Address: fxxxxxxx VLAN ID: 1111 Server Blade #2 Information: Type: Server Blade Manufacturer: HP
Je ne sais pas si je doit lire le fichier ligne par ligne pour récupérer les infos ou monter le fichier en entier dans un buffer pour après récupérer les infos ?

Quelle est pour vous la meilleur méthode et le plus simple a mettre en place ?
L'un de vous peux t'il me mettre sur la voie ?

Re: Récupération de données dans un fichier texte

Posté : 03 mars 2016, 17:07
par or 1
lire ligne par ligne
http://php.net/manual/fr/function.explode.php sur le caractère :
si 2 éléments, la valeur voulue est la seconde si j'ai bien compris.

Re: Récupération de données dans un fichier texte

Posté : 03 mars 2016, 22:07
par @rthur
Bonjour et bienvenue sur PHPfrance,

La solution la plus efficace est de faire cela avec une expression régulière (mais c'est un peu complexe à écrire au début, mais ça vaut le coup de s'y mettre).
Voici un exemple d'expression régulière qui fait ce que tu veux :
https://regex101.com/r/tE4cX3/1

Pour l'utiliser en PHP, regarde du côté de preg_match_all()
http://php.net/preg_match_all

Re: Récupération de données dans un fichier texte

Posté : 04 mars 2016, 12:04
par Marcbis92
Merci pour vos réponses.

Suite a la réponse d'"or 1" j'ai commencé par la méthode (explode), elle marche très bien.

Je viens de regarder vite fait ta méthode "@rthur" et j'ai l’impression qu'elle sera plus rapide que la version explode.
J'ai bien compris comment marchais les expressions régulières, par contre je ne peux en dire autant sur la fonction 'preg_match_all()'.

Re: Récupération de données dans un fichier texte

Posté : 04 mars 2016, 16:04
par @rthur
preg_match_all permet d'appliquer une expression régulière sur un contenu pour en extraire les données voulues.
1er paramètre c'est l'expression régullière, le 2ème le contenu texte et le 3ème la variable qui va contenir les données extraites.

Mon conseil est de faire un var_dump() de cette dernière variable après l'utilisation de preg_match_all pour bien voir ce qu'elle contient.