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

Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Dernière intervention
15 juillet 2012
- - Dernière réponse : Dhas
Messages postés
4
Date d'inscription
mardi 9 septembre 2008
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
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
3
Merci
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
*/

Merci coucou747 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de coucou747
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Dernière intervention
15 juillet 2012
3
Merci
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

Merci stefane26 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de stefane26
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
0
Merci
salut

la fonction file fait ce qu'il te faut

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
Commenter la réponse de coucou747
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Dernière intervention
15 juillet 2012
0
Merci
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
Commenter la réponse de stefane26
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Dernière intervention
15 juillet 2012
0
Merci
Ton code est en effet bien plus simple

Encore Merci
Commenter la réponse de stefane26
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Dernière intervention
15 juillet 2012
0
Merci
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
Commenter la réponse de stefane26
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
0
Merci
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
*/
Commenter la réponse de coucou747
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Dernière intervention
15 juillet 2012
0
Merci
Encore merci à toi coucou747
pourtant il me manque une chose : d'aller "LIRE" la "DERNIERE" ligne du fichier.

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

Stephane
Commenter la réponse de stefane26
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
0
Merci
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
*/
Commenter la réponse de coucou747
Messages postés
21
Date d'inscription
lundi 28 janvier 2008
Dernière intervention
15 juillet 2012
0
Merci
je teste ..

je suis impressioné.........................
Commenter la réponse de stefane26
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
0
Merci
:) mais de rien

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
Commenter la réponse de coucou747
Messages postés
4
Date d'inscription
mardi 9 septembre 2008
Dernière intervention
22 février 2010
0
Merci
Bonjour à tous,
si je veux faire cette lecture sur plusieurs fichiers dans un même dossier comment je devrais procéder?
merci d'avance
Commenter la réponse de Dhas

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.