PHP-8.0 released. 2020-11-27PHP-7.2 End Of Life. 2020-11-302020-11-30 : read more about…
PHP-7.1 End Of Life. 2019-12-01PHP-7.4 released. 2019-11-282019-11-28 : read more about…
Published WebsiteBaker 2.12.2 stable2019-06-28:read more about…
<?php // Hier nichts verändern ! // Hilfsfunktion zum Befüllen des Dateninhalts. function generateContent(&$dataArray, &$output, &$startCounter, $num, $dateUntilBreak){ // liste beginnt $output .= '<ul class="termine">'; for (; $startCounter < $num; $startCounter++) { // Vergleiche das Datum, um die Weichnachtskonzerte extra hervorheben zu können. if(strtotime($dataArray[$startCounter][0]) >= strtotime($dateUntilBreak->format('Y-m-d H:i'))){ break; } // Leider steht das "Uhr" in dem zweiten Arrayteil. Daher muss ich hier ein bisschen tricksen $concertDate = strftime("%d. %B %Y, %H:%M", strtotime($dataArray[$startCounter][0])); $concertTitle = str_replace("Uhr, ", "", stripslashes($dataArray[$startCounter][1])); $concertPlace = stripslashes($dataArray[$startCounter][2]); $output .= '<li>'.$concertDate.' Uhr<br/>"'.$concertTitle.'"<br/>'.$concertPlace.'</li>'; } // Liste beenden $output .= '</ul><p> </p>';}// Variable für den Dateninhalt$sOutput = '';$sTitle = '<h2>Konzert-Termine ';// Lokale Variable für Deutsch istif (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') $localeCode = 'ge';else $localeCode = 'de_DE';$loc_de = setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');setlocale(LC_TIME,$loc_de);// Datum mit Uhrzeit zum berechnen, welche Termine angezeigt werden// Das aktuelle Jahr $actualYear = new DateTime(strftime("%Y", strtotime(date("Y"))).'-01-01 00:00:00');// Weihnachtsmonate für das aktuelle Jahr$christmasDate = new DateTime(strftime("%Y", strtotime($actualYear->format('Y'))).'-12-01 00:00:00');// date für das Nächste Jahr$nextYear = new DateTime(strftime("%Y", strtotime($actualYear->format('Y'))).'-01-01 00:00:00');$nextYear->modify("+1 year");// date für das übernächste Jahr$theYearAfterNext = new DateTime(strftime("%Y", strtotime($actualYear->format('Y'))).'-01-01 00:00:00');$theYearAfterNext->modify("+2 year");// Counter für die Anzahl an gelesenen Daten bzw. Zeilen$count = 0;// Datei zum Lesen öffnen$handle = fopen ("https://liederstube.de/templates/findresp/Termine-2021.txt","r");// Daten werden aus der Datei gelesenwhile ( ($data = fgetcsv ($handle, 1000, ";")) !== FALSE ) { // Anzahl der Felder im Array $data $num = count ($data); // Ablegen der Daten in der Form // ARRAY[Eintrag / Zeilenummer][Elemente(Zeit=0, Titel=1, Ort=2)] // Dabei ist die Grenze das aktuelle Jahr if(strtotime($data[0]) >= strtotime($actualYear->format('Y-m-d H:i'))){ for ($c=0; $c < $num; $c++) { $array[$count][$c] = $data[$c]; } $count++; } } fclose ($handle);// Array noch sortieren, damit das Datum immer in der richtigen Reihenfolge stehtarray_multisort($array);// Titel setzen "Konzerte-Termine JAHR"$sOutput .= $sTitle.strftime("%Y", strtotime($actualYear->format('Y'))).'</h2><p> </p>';// Jeden Eintrag bearbeiten$c=0;// Datenerstellen bis zur WeihnachtszeitgenerateContent($array, $sOutput, $c, $count, $christmasDate);// Es sind noch Daten zu verarbeiten für die aktuelle Weichnachtszeitif($c < $count){ $sOutput .= '<h2>Weihnachtskonzerte</h2><p> </p>'; // Weihnachtszeit beginnt generateContent($array, $sOutput, $c, $count, $nextYear);}// Es sind noch Daten zu verarbeiten für das nächste Jahrif($c < $count){ // Titel setzen "Konzerte-Termine JAHR" $sOutput .= $sTitle.$nextYear->format('Y').'</h2><p> </p>'; generateContent($array, $sOutput, $c, $count, $theYearAfterNext);}$sOutput = str_replace("ä", "ä", $sOutput);$sOutput = str_replace("Ä", "Ä", $sOutput);$sOutput = str_replace("ö", "ö", $sOutput);$sOutput = str_replace("Ö", "Ö", $sOutput);$sOutput = str_replace("ü", "ü", $sOutput);$sOutput = str_replace("Ü", "Ü", $sOutput);$sOutput = str_replace("ß", "ß", $sOutput);// Am Schluss wird die richtige Zeichenkodierung gesetzt$sOutput = iconv( "Windows-1252", "UTF-8", $sOutput );print $sOutput;