récupéré le nombre de ligne entre 2 occurrences
Posté : 05 déc. 2010, 01:19
Bonjour
Je débute en PHP et cherche a compter le nombre de ligne entre 2 occurence dans un fichier log en TXT.
Je m'explique.
Voici mon log
26/11/2010 23:09:07~!~Event Trigger~!~Delayed Trigger A6 Off (hall detecteur)
26/11/2010 23:09:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:10:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:10:57~!~Event Trigger~!~Value change trigger (temperature serre hors gel on):serre milieu from: 250 to: 238 C14 On (serre radiateur) , C15 On (serre lampadaire paille)26/11/2010 23:09:07~!~Event Trigger~!~Delayed Trigger A6 Off (hall detecteur)
26/11/2010 23:09:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:10:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:10:57~!~Event Trigger~!~Value change trigger (temperature serre hors gel on):serre milieu from: 250 to: 238 C14 On (serre radiateur) , C15 On (serre lampadaire paille)
26/11/2010 23:11:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:12:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:13:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:13:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 238 to: 394 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:14:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:15:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:15:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 394 to: 463 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:16:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:17:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:18:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:18:57~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 463 to: 369 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:19:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:20:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:20:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 369 to: 325 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:21:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:22:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:22:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 325 to: 294 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:23:57~!~Event Trigger~!~Recurring Trigger (drive space)
26/11/2010 23:23:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:11:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:12:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:13:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:13:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 238 to: 394 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:14:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:15:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:15:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 394 to: 463 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:16:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:17:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:18:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:18:57~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 463 to: 369 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:19:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:20:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:20:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 369 to: 325 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:21:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:22:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:22:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 325 to: 294 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:23:57~!~Event Trigger~!~Recurring Trigger (drive space)
26/11/2010 23:23:57~!~Event Trigger~!~Recurring Trigger (nolive)
En fait je voudrais connaitre le temps que fonctionne un chauffage dasn une serre pour calculer ma consommation.
Pour se faire je pense compter le temps entre une ligne qui contient
26/11/2010 23:10:57~!~Event Trigger~!~Value change trigger (temperature serre hors gel on):serre milieu from: 250 to:
et la ligne qui affiche le off après le on
26/11/2010 23:13:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 238 to
Voici le code que j'ai afin d'ouvrir le le fichier log et de recupéré une valeur
Par contre je ne comprend pas comment faire pour comparer l'heure de démarrage d'une ligne on et l'heure d’extinction d'une ligne off dans le log et calculer le temps écoulé, additionne le tout afin d'obtenir le temps de fonctionnement.
Si vous avez des pistes, merci
PS: j'ai cherché 15 jours afin de trouver le bout de code plus haut.
Je débute en PHP et cherche a compter le nombre de ligne entre 2 occurence dans un fichier log en TXT.
Je m'explique.
Voici mon log
26/11/2010 23:09:07~!~Event Trigger~!~Delayed Trigger A6 Off (hall detecteur)
26/11/2010 23:09:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:10:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:10:57~!~Event Trigger~!~Value change trigger (temperature serre hors gel on):serre milieu from: 250 to: 238 C14 On (serre radiateur) , C15 On (serre lampadaire paille)26/11/2010 23:09:07~!~Event Trigger~!~Delayed Trigger A6 Off (hall detecteur)
26/11/2010 23:09:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:10:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:10:57~!~Event Trigger~!~Value change trigger (temperature serre hors gel on):serre milieu from: 250 to: 238 C14 On (serre radiateur) , C15 On (serre lampadaire paille)
26/11/2010 23:11:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:12:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:13:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:13:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 238 to: 394 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:14:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:15:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:15:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 394 to: 463 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:16:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:17:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:18:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:18:57~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 463 to: 369 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:19:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:20:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:20:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 369 to: 325 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:21:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:22:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:22:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 325 to: 294 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:23:57~!~Event Trigger~!~Recurring Trigger (drive space)
26/11/2010 23:23:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:11:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:12:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:13:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:13:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 238 to: 394 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:14:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:15:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:15:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 394 to: 463 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:16:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:17:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:18:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:18:57~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 463 to: 369 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:19:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:20:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:20:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 369 to: 325 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:21:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:22:57~!~Event Trigger~!~Recurring Trigger (nolive)
26/11/2010 23:22:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 325 to: 294 C14 Off (serre radiateur) , C15 Off (serre lampadaire paille)
26/11/2010 23:23:57~!~Event Trigger~!~Recurring Trigger (drive space)
26/11/2010 23:23:57~!~Event Trigger~!~Recurring Trigger (nolive)
En fait je voudrais connaitre le temps que fonctionne un chauffage dasn une serre pour calculer ma consommation.
Pour se faire je pense compter le temps entre une ligne qui contient
26/11/2010 23:10:57~!~Event Trigger~!~Value change trigger (temperature serre hors gel on):serre milieu from: 250 to:
et la ligne qui affiche le off après le on
26/11/2010 23:13:58~!~Event Trigger~!~Value change trigger (temperature serre hors gel off):serre milieu from: 238 to
Voici le code que j'ai afin d'ouvrir le le fichier log et de recupéré une valeur
Code : Tout sélectionner
<?php
$i=0;
$element_liste = "~!~Event Trigger~!~Value change trigger (temperature serre hors gel on):serre milieu from:";
$fichier = fopen("C:/Program Files/HomeSeer/ah.log", "r");
if ($fichier) //si la lecture s'est bien déroulée
{
//tanqu'on est pas à la fin du fichier
while (!feof($fichier))
{
$ligne = fgets($fichier, 4096); //lit ligne par ligne 4096 octets
if(strstr($ligne, $element_liste))
{
$resultat[$i] = $ligne;
$i++;
}
}
fclose($fichier);
}
//j'affiche
#for($i=0; $i<count($resultat); $i++)
echo "<B> Le chauffage de la serre a fonctionné $i minute depuis le 4 12/2010 : </B>";
# echo "<B>Résultat numéro $i : </B>".$resultat[$i]."<br/>";
?>Si vous avez des pistes, merci
PS: j'ai cherché 15 jours afin de trouver le bout de code plus haut.