Lire un fichier txt ligne par ligne en php

Résolu
stefane26
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
15 juillet 2012
- 28 janv. 2008 à 18:56
Dhas
Messages postés
4
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
22 février 2010
- 22 févr. 2010 à 12:20
Bonjour
Je possède une station météo automatique connectée à un PC qui enregistre les données toutes les minutes.
Un logiciel traite ces données et enregistre un fichier TXT qui se met à jour toutes les 5 minutes de la forme suivante :

lundi 28 janvier 2008          //la date
05:35                                  //l'heure
8.4 °C                                //la température
31 %                                  // l'humidité
1028.9 hPa                         //la pression atmosphérique
30.9 km/h                           //la vitesse moyenne du vent
49.9 km/h                           // la vitesse des rafales

Je souhaite créer une page PHP qui lirait chaque ligne (en mettant une variable pour chaque ligne) : par exemple ligne 1 : $date, ligne 2 : $heure, igne 3 : $temp ....etc sur toutes les lignes (le même nombre de ligne et type d'info à chaque mise à jour) et m'afficherait ces infos

Merci pour votre aide

Stéphane
A voir également:

12 réponses

stefane26
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
15 juillet 2012

30 janv. 2008 à 05:12
Bonjour coucou747
Je joins le code complet qui fonctionne parfaitement

<?php
 $fichier = "actuel_donnee.txt";
 $content=file ($fichier);
 $lastLine=$content[count($content)-1];
 list($date, $heure, $tempI, $tempE , $tempEmin, $tempEmax, $humI, $humE, $atmo, $pluie, $vent, $dir, $atmo11, $atmo12, $pointrosee, $tempVent, $rafale, $reception, $gdw, $w0, $w1)= explode(';', $lastLine);
 echo $date, $heure
?>

Encore merci
3
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
28 janv. 2008 à 21:01
ou plus simplement :

<?php
 $fichier = "actuel_donnees.txt";
 list($date, $heure, $temp, $hum, $atmo, $vent, $rafale)= file ($fichier);
 print ("Dernier relevé le $date à $heure");
?>

tu peux cliquer sur reponse acceptee stp ?

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
2
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
28 janv. 2008 à 19:13
salut

la fonction file fait ce qu'il te faut

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0
stefane26
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
15 juillet 2012

28 janv. 2008 à 20:42
Merci coucou747, ton aide a été très précieuse
j'ai donc fait le fichier PHP suivant pour lire mon fichier TXT de mon premier post :

<?php
 $fichier = "actuel_donnees.txt";
 $lines = file ($fichier);
 $date = $lines[0];
 $heure = $lines[1];
 $temp = $lines[2];
 $hum = $lines[3];
 $atmo = $lines[4];
 $vent = $lines[5];
 $rafale = $lines[6];
 print ("Dernier relevé le $date à $heure");
?>

Encore merci
0

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

Posez votre question
stefane26
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
15 juillet 2012

28 janv. 2008 à 21:04
Ton code est en effet bien plus simple

Encore Merci
0
stefane26
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
15 juillet 2012

29 janv. 2008 à 04:48
Encore un petite question , dans le même genre :

toujours un fichier txt qui enregistre les données météo mais toutes les infos sont sur une seule ligne séparées par un point virgule et je ne veux prendre que la dernière ligne : exemple :

date;heure;temp Ext;hum E;atmo;vent;rafale               <== la première ligne explique quelles sont les infos
28/01/2008;05:00;4.2;94;1029.4;22.3;39.5
28/01/2008;05:05;4.2;94;1029.3;22.5;40.1
89/01/2008;05:10;4.1;94;1029.2;20.4;28.5
.
.
.etc
29/01/2008;04:55;1.2;79;1024.4;10.3;24.5               <== c'est la ligne à lire (la dernière du fichier)

c'est mis à jour toutes les 5 minutes
comment faire en php pour extraire chaque variable comme dans ma demande précédente (mais en ligne au lieu de colonne)

Merci
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
29 janv. 2008 à 07:36
salut

ca se fait avec explode :

<?php
 $fichier = "actuel_donnees.txt";
 list($date, $heure, $temp, $hum, $atmo, $vent, $rafale)= file ($fichier);

list($info1, $info2, $info3, ...)= explode(';', $date);

echo $date, '<hr/>' .... ce code la tu peux le faire toi meme;
?>
/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0
stefane26
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
15 juillet 2012

29 janv. 2008 à 19:54
Encore merci à toi coucou747
pourtant il me manque une chose : d'aller "LIRE" la "DERNIERE" ligne du fichier.

Merci...................

Stephane
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
29 janv. 2008 à 19:56
comme ca ?

<?php
 $fichier = "actuel_donnees.txt";
$content=file ($fichier);
 list($date, $heure, $temp, $hum, $atmo, $vent, $rafale)= $content;

$lastLine=$content[count($content)-1];

list($info1, $info2, $info3, ...)= explode(';', $date);

echo $date, '<hr/>' .... ce code la tu peux le faire toi meme;
?>

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0
stefane26
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
15 juillet 2012

29 janv. 2008 à 20:01
je teste ..

je suis impressioné.........................
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
30 janv. 2008 à 10:10
:) mais de rien

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0
Dhas
Messages postés
4
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
22 février 2010

22 févr. 2010 à 12:20
Bonjour à tous,
si je veux faire cette lecture sur plusieurs fichiers dans un même dossier comment je devrais procéder?
merci d'avance
0