[PHP] Séparer 1 fichier par ligne et par mot

Résolu/Fermé
A2l1n3 Messages postés 12 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 14 avril 2009 - 6 juil. 2007 à 12:01
 Alain42 - 6 juil. 2007 à 14:54
Bonjour,

J'ai besoin de parser un fichier de ce type :
timestamp    apache_instclients

1183042800:  5.2216666667e+01
1183044600:  5.3420000000e+01
1183046400:  7.9380000000e+01
1183048200:  6.2200000000e+01
1183050000:  1.0311333333e+02
1183051800:  9.3700000000e+01

Il me faut chaque mot dans une case de tableau.

J'ai trouvé la fonction explode mais je ne peux pas m'en servir deux fois (une pour \n et une pour " ") et c'est là mon problème.
        exec('/u0/www/htdocs/cacti/reporting/indicateurs/pftv-nouveaux-serveurs.sh');
        $contenu = fread(fopen('/u0/www/htdocs/cacti/reporting/indicateurs/tv_frontal_1_apache_instclients_3049.txt', "r"), filesize('/u0/www/htdocs/cacti/reporting/indicateurs/tv_frontal_1_apache_instclients_3049.txt'));
        $contenu_array = explode("\n",$contenu);


Avez-vous une idée ?

3 réponses

Essaye de lire ton fichier avec la fonction file()
elle te met le fichier dans un array ligne par ligne, donc plus besoin de t'occuper du \n

ensuite par une boucle for tu parcours cet array et tu explode par rapport à " " ou a ":"
1
Pourtant la fonction file(chemin_fichier) rien de plus simple, pas besoin de fopen ni rien, juste le chemin complet jusqu'au fichier à lire (chemin relatif par rapport à ton script !)
1
A2l1n3 Messages postés 12 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 14 avril 2009 8
6 juil. 2007 à 14:41
J'ai essayé avec file() mais je n'ai pas réussi à faire marcher cette fonction.
J'ai trouvé cette solution :
        $contenu = fread(fopen('/u0/www/htdocs/cacti/reporting/indicateurs/tv_frontal_1_apache_instclients_3049.txt', "r"), filesize('/u0/www/htdocs/cacti/reporting/indicateurs/tv_frontal_1_apache_instclients_3049.txt'));
        $contenu_array = explode("\n",$contenu);
        $contenu_array = implode(" ",$contenu_array);
        $contenu_array = explode(" ",$contenu_array);
        print_r($contenu_array);


Le seul problème c'est que je me retrouve avec des cases vides.

Merci !
0