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

stefane26 21 Messages postés lundi 28 janvier 2008Date d'inscription 15 juillet 2012 Dernière intervention - 28 janv. 2008 à 18:56 - Dernière réponse : Dhas 4 Messages postés mardi 9 septembre 2008Date d'inscription 22 février 2010 Dernière intervention
- 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 

12 réponses

Répondre au sujet
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 28 janv. 2008 à 21:01
+3
Utile
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
*/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de coucou747
stefane26 21 Messages postés lundi 28 janvier 2008Date d'inscription 15 juillet 2012 Dernière intervention - 30 janv. 2008 à 05:12
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de stefane26
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 28 janv. 2008 à 19:13
0
Utile
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
stefane26 21 Messages postés lundi 28 janvier 2008Date d'inscription 15 juillet 2012 Dernière intervention - 28 janv. 2008 à 20:42
0
Utile
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
stefane26 21 Messages postés lundi 28 janvier 2008Date d'inscription 15 juillet 2012 Dernière intervention - 28 janv. 2008 à 21:04
0
Utile
Ton code est en effet bien plus simple

Encore Merci
Commenter la réponse de stefane26
stefane26 21 Messages postés lundi 28 janvier 2008Date d'inscription 15 juillet 2012 Dernière intervention - 29 janv. 2008 à 04:48
0
Utile
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
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 29 janv. 2008 à 07:36
0
Utile
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
stefane26 21 Messages postés lundi 28 janvier 2008Date d'inscription 15 juillet 2012 Dernière intervention - 29 janv. 2008 à 19:54
0
Utile
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
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 29 janv. 2008 à 19:56
0
Utile
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
stefane26 21 Messages postés lundi 28 janvier 2008Date d'inscription 15 juillet 2012 Dernière intervention - 29 janv. 2008 à 20:01
0
Utile
je teste ..

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

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
Commenter la réponse de coucou747
Dhas 4 Messages postés mardi 9 septembre 2008Date d'inscription 22 février 2010 Dernière intervention - 22 févr. 2010 à 12:20
0
Utile
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.