Lire un fichier txt ligne par ligne en php [Résolu]

Signaler
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
15 juillet 2012
-
Messages postés
4
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
22 février 2010
-
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

12 réponses

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

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
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
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
*/
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
salut

la fonction file fait ce qu'il te faut

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

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
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
15 juillet 2012

Ton code est en effet bien plus simple

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

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
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
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
*/
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
15 juillet 2012

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

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

Stephane
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
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
*/
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
15 juillet 2012

je teste ..

je suis impressioné.........................
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
:) mais de rien

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

Bonjour à tous,
si je veux faire cette lecture sur plusieurs fichiers dans un même dossier comment je devrais procéder?
merci d'avance