Hallo,
nun funktioniert alles, anbei das Schript:
<?
$filename = IPS_GetKernelDir()."Abfuhrtermine.ics"; //Ort der iCalender-Datei liegt
//Aufruf der Funktion
$iCal_String = iCal_to_String($filename);
function iCal_to_String($filename)
{
/*=============================================================
iCal_to_String - Martin Heinzel - 16.12.2011
Version: 0.1
Beschreibung:
Mit dieser Funktion wird eine iCalender Datei in eine String-
variable gewandelt.
Änderungen
----------
tt.mm.jjjj von Version x.x -> y.y
Beschreibung:
================================================================*/
// Variablen Deklaration --------------------------------------
// Variablen
//--------------
$iCal_DS_komplett = ""; //Komplette iCalender Datensatz
$restmuell = ""; //gewandelter iCalender Datensatz
$biomuell = ""; //gewandelter iCalender Datensatz
$wertstoff = ""; //gewandelter iCalender Datensatz
$papier = ""; //gewandelter iCalender Datensatz
//$baum = ""; //gewandelter iCalender Datensatz
$term_jahr = ""; //Termin Jahr
$term_monat = ""; //Termin Monat
$term_tag = ""; //Termin Tag
$term_inhalt = ""; //Termin Text
//-------------------------------------------------------------
//--------------------------- Main ----------------------------
//Daten holen
if(file_exists($filename))
{
//Termine in Variable einlesen
$iCal_DS_komplett = file_get_contents($filename);
//Echo($iCal_DS_komplett);
//Den kompletten Datensatz zerlegen
$iCal_DS_komplett_arr = explode("BEGIN:", $iCal_DS_komplett);
//alle Datensätze durchlaufen
foreach($iCal_DS_komplett_arr as $key => $value)
{
//Der erste Datensatz ist "2"
if($key > 1)
{
//einzelnen Datensatz in Daten zerlegen
$iCal_arr = explode("
", $value);
//Nur Datensätze vom Typ "VEVENT" durchlaufen
if($iCal_arr[0] == "VEVENT")
{
//alle Daten durchlaufen
foreach($iCal_arr as $ikey => $ivalue)
{
//Daten zerlegen in Parameter und Wert
$Data_arr = explode(":", $ivalue);
//Kontrolle der Parameter
Switch($Data_arr[0])
{
//Zeitstempel Datum
case "DTSTART;VALUE=DATE":
$term_jahr = substr($Data_arr[1], 0, 4);
$term_monat = substr($Data_arr[1], 4, 2);
$term_tag = substr($Data_arr[1], 6, 2);
break;
case "SUMMARY":
$term_inhalt = $Data_arr[1];
//echo($term_inhalt); // zum Überprüfen ob etwas in der $term_inhalt steht
}
}
Switch($term_inhalt)
{
case "Restabfalltonne (60-240l)(14tgl.)": // Suchbegriff
$restmuell[] = $term_tag.".".$term_monat.".".$term_jahr;
break;
case "Biotonne(14tgl.)":
$biomuell[] = $term_tag.".".$term_monat.".".$term_jahr;
break;
case "Gelber Sack(14tgl.)":
$wertstoff[] = $term_tag.".".$term_monat.".".$term_jahr;
break;
case "Papiertonne(4wö.)":
$papier[] = $term_tag.".".$term_monat.".".$term_jahr;
//break;
//case "Weihnachtsbaeume":
//$baum[] = $term_tag.".".$term_monat.".".$term_jahr;
}
}
}
}
}
else
{
//Wenn die Datei nicht existiert dann wird ERROR_FILENAME ausgegeben
$iCal_String = "ERROR_FILENAME";
}
//--------------------------------Variablen Schalten---------------------------------------------------------
$today = date("d.m.Y");
//echo($today);
$tomorrow = date("d.m.Y", strtotime("+1 days"));
//echo($tomorrow);
//schwarze Tonne
if (array_search($today, $restmuell, true ) )
{
SetValueInteger(29196 /*[Müll\Restabfalltonne]*/,1);
}
else
{
if (array_search($tomorrow, $restmuell, true ) )
{
SetValue(29196 /*[Müll\Restabfalltonne]*/,2);
}
else
{
SetValue(29196 /*[Müll\Restabfalltonne]*/,0);
}
}
//bio Tonne
if (array_search($today, $biomuell, true ) )
{
SetValueInteger(32858 /*[Müll\Biotonne]*/,1);
}
else
{
if (array_search($tomorrow, $biomuell, true ) )
{
SetValueInteger(32858 /*[Müll\Biotonne]*/,2);
}
else
{
SetValueInteger(32858 /*[Müll\Biotonne]*/,0);
}
}
//Gelber Sack
if (array_search($today, $wertstoff, true ) )
{
SetValueInteger(35438 /*[Müll\Gelber Sack]*/,1);
}
else
{
if (array_search($tomorrow, $wertstoff, true ) ) {
SetValueInteger(35438 /*[Müll\Gelber Sack]*/,2);
}
else
{
SetValueInteger(35438 /*[Müll\Gelber Sack]*/,0);
}
}
//Papier Tonne
if (array_search($today, $papier, true ) ) {
SetValueInteger(36560 /*[Müll\Papiertonne]*/,1);
}
else
{
if (array_search($tomorrow, $papier, true ) )
{
SetValueInteger(36560 /*[Müll\Papiertonne]*/,2);
}
else {
SetValueInteger(36560 /*[Müll\Papiertonne]*/,0);
}
}
//--------------------------------Variablen Schalten Ende---------------------------------------------------------
$ergebnis = array($restmuell,$biomuell,$wertstoff,$papier);
//print_r($ergebnis);
return $ergebnis;
//------------------------- Main ENDE --------------------------
}
?>
Die Variablen werden einmal am Tag ( 00:01) gefüllt. Ablageort der ICS-Datei ist direkt im Symconordner
Vielen Dank für die Hilfe hier im Forum.
LG Izack