NOF-Forum | Referenzen | Kontakt | Impressum | Sitemap
Die PHP-Skripte zur Ausgabe der Inhalte von Textdateien beruhen auf dem Skript “Geburtstage anzeigen” von Webbausteine.de.
Bitte ladet Euch die ZIP-Datei zum besseren Verständnis bei Webbausteine.de herunter.
Ich habe hier zwei etwas unterschiedliche Beispiele erstellt:
Geburtstage
Hier wird eine TXT-Datei verwendet, die Ihr beliebig anpassen und erweitern könnt.
Achtet darauf, dass alle Textdateien in der Kodierung “UTF-8 ohne BOM” gespeichert werden, wenn Ihr den Zeichensatz “UTF-8” für Eure Seiten verwendet, damit die Umlaute und Sonderzeichen korrekt dargestellt werden. Am besten Ihr ladet Euch hierfür einen Editor wie Notepad++ herunter.
Hier ein Teil meiner TXT-Datei “geburtstage.txt”. Wie Ihr erkennen könnt, verwende ich einen senkrechten Strich | als Separator für die Funktion “explode”.
Peter|02|01|
Kirsten|22|01
Klaus|03|02|
Doris|16|02|
Sonja|10|03|
Hier das PHP-Skript zum Auslesen dieser TXT-Datei. Die Anzeige der kommenden Tage (hier 56) könnt Ihr natürlich anpassen.
<?php
$tage = 56; // Zeige die Geburtstage der nächsten X-Tage an
$geburtstage = file("./Daten/geburtstage.txt");
$ausgabe = "";
for ($zaehler = 0; $zaehler != $tage; $zaehler++) {
$aktuell = date("d.m.Y", strtotime("+" . $zaehler . " day", time()));
list($tag, $monat, $jahr) = explode(".", $aktuell);
foreach ($geburtstage as $geburtstag) {
list($name, $tag2, $monat2, $jahr2) = explode("|", $geburtstag);
if ($tag2 == $tag && $monat2 == $monat) {
$ausgabe .= '<b>' . $name . '</b><br>' . datum($tag, $monat, $jahr) . '<br><br>';
}
}
}
if ($ausgabe != "") {
echo '<p style="color: rgb(0,0,255);">Geburtstage in den nächsten ' . $tage . ' Tagen: ' . '<br><br>' . $ausgabe . '</p>';
}
else {
echo '<p>In den nächsten ' . $tage . ' Tagen<br>hat niemand Geburtstag!</p>';
}
function datum($tag, $monat, $jahr) {
$wt = getdate(mktime(0, 0, 0, $monat, $tag, $jahr));
$tag = round($tag);
$monat = round($monat);
$tage = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
$monate = array(1=>"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
return $tage[$wt["wday"]] . ", " . $tag . ". " . $monate[$monat] . " " . $jahr;
}
?>
Stellt Eure Seite zur Anzeige der Skripte auf die Dateierweiterung .php um, damit das Skript am Server ausgeführt werden kann.
> Bearbeiten > Benutzerdefinierte Namen > Dateierweiterung > .php wählen
Zieht Euch ein Textfeld auf und fügt das Skript in den HTML-Code Editor des Textfeldes ein.
> Textfeld doppelklicken (Cursor blinkt) > Fenster “Text-Eigenschaften” > mittlere Button oben “Textfeld” > Button ”HTML” > Code einfügen
Tagesdatum
Hier wird eine CSV-Datei verwendet, die Ihr beliebig anpassen und erweitern könnt. Hier könntet Ihr aber ebensogut auch eine TXT-Datei verwenden.
Achtet darauf, dass alle Textdateien in der Kodierung “UTF-8 ohne BOM” gespeichert werden, wenn Ihr den Zeichensatz “UTF-8” für Eure Seiten verwendet, damit die Umlaute und Sonderzeichen korrekt dargestellt werden. Am besten Ihr ladet Euch hierfür einen Editor wie Notepad++ herunter.
Hier ein Teil meiner CSV-Datei “daten.csv”. Wie Ihr erkennen könnt, verwende ich einen senkrechten Strich | als Separator für die Funktion “explode”.
01.10.2014|Düsseldorf|Kaffeetrinken mit Erna. Kuchen muss selbst mitgebracht werden.
02.10.2014|Berlin|Übung zum Löschen meines Hauses, wäre schön wenn es nicht brennt.
Hier das PHP-Skript zum Auslesen dieser CSV-Datei. Die Anzeige erfolgt jeweils am Tagesdatum.
<?php
$daten = file("./Daten/daten.csv");
$counter = 0;
foreach ($daten as $data) {
list($datum, $ort, $thema) = explode("|", $data);
list($tag, $monat, $jahr) = explode(".", $datum);
if ($jahr == date("Y")) {
if ($monat == date("m")) {
if ($tag == date("d")) {
$counter++;
echo '<p><b>Heute:</b> ' . $datum . '<br><b>Ort:</b> ' . $ort . '<br><b>Thema:</b> ' . $thema . '</p>';
}
}
}
}
if ($counter < 1) {
echo '<p>Heute wurden keine Einträge gefunden!</p>';
}
// die folgende Zeile mit zwei Slash // deaktiviert. Diese zeigt die Gesamtanzahl der Einträge an
// echo '<hr>Insgesamt ' . count($daten) . ' Einträge.';
?>
... fügt das Skript, wie bereits bei dem Skript “Geburtstage anzeigen”, in die HTML eines Textfeldes ein.
Viel Erfolg!