Hallo Leute,
hier nun mal als Diskussiongrundlage die Erweiterung des Basisskriptes um die Funktionaliät, dass eine Variable mit der letzten Meldung, und eine mit allen Meldungen gefüllt wird (ab Version 1.0.4.!)
PHP-Code:
<?
// Dieses Skript legt eine Kontrolldatei für IPSWatchDog an.
// Es muss alle 15 Sekunden ausgeführt werden
define("DateiName", "..\alive.ips"); //Dateiname für alive Datei definieren
// normalerweise würde die Datei im Verzeichnis \IPS-SYMCON\SCRIPTS angelegt
// durch ..\ wird sie jedoch im Wurzelverchnis von IPS erstellt, also dort, wo auch ips.exe und IPSWatchDog.exe liegen
//Datei vorhanden?
$dateifehlt = !file_exists(DateiName);
//falls die Datei fehlt, neu anlegen
if ($dateifehlt) {
$inhalt = date("d.m.y - H:i"); // Ich habe nur zu Kontrollzwecken etwas in die Datei geschrieben. Sie kann aber auch leer bleiben
$datei = fopen(DateiName, "a");
fwrite ($datei, $inhalt);
fclose($datei);
}
//LogDatei öffnen um Werte in die Variablen zu schreiben
$AlleMeldungen = 16588 /*[Sonstige Daten\IPS Watch Dog\Alle Meldungen]*/ ; //Variable Typ String, Darstellung HTML-Box
$LetzteMeldung = 53872 /*[Sonstige Daten\IPS Watch Dog\Letzte Meldung]*/ ; //Variable Typ String, Darstellung HTML-Box
$Dateipfad = IPS_GetKernelDir()."IPSWatchDog.log";
$LogText = "";
// Öffnen der Datei
$handle = fopen($Dateipfad,"r");
// Schleife so lange durchlaufen, wie Zeilen vorhanden sind
while ($line = fgets($handle, 1000))
{
$LogText = $LogText.$line;
}
//Die erste Differenzierung nach Zeilen vornehmen
$Zeilen = explode(chr(13),$LogText);
$AnzahlZeilen = (Count($Zeilen) - 1);
$GesamtMeldung = "";
// Nun das Ergebnis Zeile für Zeile durchgehen
for($i=0; $i < $AnzahlZeilen; $i++)
{
// Jetzt das spezifische Array aus den jeweiligen Zeilen füllen
$Zerlegung = explode(";", $Zeilen[$i]); //[0]-Datum, [1]-Uhrzeite, [2]-Meldungstext
$Meldung[$i][0]=trim($Zerlegung[0]);
$Meldung[$i][1]=trim($Zerlegung[1]);
$Meldung[$i][2]=trim($Zerlegung[2]);
// Den Gesamtmeldungstext zusammensetzen
$GesamtMeldung = $GesamtMeldung."<h5>".$Meldung[$i][0]." ".$Meldung[$i][1]." ".$Meldung[$i][2]."</h5>";
}
// Die Anzeige nur aktualisieren, aber nur wenn sich etwas verändert hat
If ((GetValueString($AlleMeldungen)) <> ($GesamtMeldung))
{
SetValueString($AlleMeldungen, $GesamtMeldung);
SetValueString($LetzteMeldung, ("<h5>".$Meldung[$AnzahlZeilen - 1][0]." ".$Meldung[$AnzahlZeilen - 1][1]." ".$Meldung[$AnzahlZeilen - 1][2])."</h5>");
}
else
{
//echo "Keine Veränderung";
}
?>
Es gibt aber noch einige andere Baustellen die bearbeitet werden müssen...
Joachim