Nach Datum laden
Compiwurstel
- php
0 Hopsel0 Compiwurstel0 Hopsel0 Compiwurstel0 wahsaga0 Compiwurstel0 Hopsel
Hallo zusammen,
ich habe einen Terminplan, der jede Woche (freitags) aktualisiert wird. Der Seitenaufbau sieht wie folgt aus:
Es gibt die Datei "aktuell.php", in die mittels der Datei "inc/ak_config.php" die Datei "wp.inc.php" geladen wird. Das Skript in "ak_config.php" sieht so aus:
<?php
$dateien = array(
"wp"=>array("inhalt"=>"wp.inc.php",
"navigation"=>"../navig/nav_ak.inc"),
);
?>
Nun möchte ich die Aktualisierung wg. Urlaub für ein paar Wochen automatisieren. Die Dateien "wp15.inc.php", "wp16.inc.php", usw. sollen also am besten nach Datum geladen werden.
Wie kriege ich das hin? (Bin php-Anfänger!)
Gruß
Compiwurstel
Hi Compiwurstel!
Nun möchte ich die Aktualisierung wg. Urlaub für ein paar Wochen automatisieren. Die Dateien "wp15.inc.php", "wp16.inc.php", usw. sollen also am besten nach Datum geladen werden.
Wie kriege ich das hin? (Bin php-Anfänger!)
Anhand der date()-Funktion kannst du den Wochentag (w) und die Woche im Jahr (W) herausfinden. Dann setzt du einfach nur noch die gewünschte include-Datei ein.
MfG H☼psel
Anhand der date()-Funktion kannst du den Wochentag (w) und die Woche im Jahr (W) herausfinden. Dann setzt du einfach nur noch die gewünschte include-Datei ein.
Hallo Hopsel,
danke für die Antwort. Das mit der date()-Funktion klingt gut, ich hab allerdings keinerlei Erfahrung. Ich nehme an, ich muss die Funktion in die "ak_config.php" einbinden, damit die entsprechende include-Datei geladen wird, weiß aber nicht, wie ich das machen soll!
Gruß Compiwurstel
Hi Compiwurstel!
danke für die Antwort. Das mit der date()-Funktion klingt gut, ich hab allerdings keinerlei Erfahrung. Ich nehme an, ich muss die Funktion in die "ak_config.php" einbinden, damit die entsprechende include-Datei geladen wird, weiß aber nicht, wie ich das machen soll!
Kennst du dich mit PHP aus?
Du musst eigentlich nur abfragen, ob es schon Freitag ist und in welcher Woche man sich befindet.
Wenn für jeden Freitag für die jeweils kommende Woche eine neue Datei eingebunden werden soll, dann kannst du das so tun:
if (date('w') < 5) // Montag bis Donnerstag,
$woche = date('W'); // also wird der Terminplan für die
// laufende Woche eingebunden
else
$woche = date('W') + 1; // Freitag bis Sonntag wird der
// Terminplan für die folgende Woche eingebunden
include 'wp'.$woche.'.inc.php';
Wie der Code in deinen Quelltext passt, weißt du hoffentlich selbst.
MfG H☼psel
Hallo Hopsel,
vielen Dank für deine Hilfe.
Wie der Code in deinen Quelltext passt, weißt du hoffentlich selbst.
Ja, wie ich den Code einbinde, weiß ich. Für die laufende Woche funktioniert es auch, da ich aber leider die Uhr des Servers nicht vorstellen kann, kann ich auch nicht überprüfen, ob es in den nächsten Wochen auch funktioniert. Deshalb noch mal eine Rückfrage (wie gesagt, ich bin php-Anfänger!):
Verstehe ich das richtig, dass das Skript die jeweilige Kalenderwoche ('W') ausliest und über die date('w')-Abfrage der Datei-Wechsel initiiert wird und mit else usw. die Zeit bis zur nächsten Kalenderwoche überbrückt wird?
Wenn ich das so richtig kapiert habe, dann bin ich echt beeindruckt davon, wie einfach bestimmte Dinge mit php gehen, die ich früher immer mit relativ aufwendigen JS erledigt habe.
Also vielen Dank noch mal
und alles Gute
Compiwurstel
hi,
Ja, wie ich den Code einbinde, weiß ich. Für die laufende Woche funktioniert es auch, da ich aber leider die Uhr des Servers nicht vorstellen kann, kann ich auch nicht überprüfen, ob es in den nächsten Wochen auch funktioniert.
Du kannst date auch einen Timestamp als zweiten Parameter übergeben, der in der Zukunft liegt.
gruß,
wahsaga
Hallo Wahsaga,
Du kannst date auch einen Timestamp als zweiten Parameter übergeben, der in der Zukunft liegt.
Ich dachte mir schon, dass es da eine Möglichkeit gibt, wenngleich ich mit Deinem Hinweis leider nicht viel anfangen kann, weil ich nicht weiß, wie er umzusetzen wäre (s.o.). Aber da ja morgen Freitag ist, werde ich hoffentlich erleben, ob es funktioniert ;-)
Viele Grüße
Compiwurstel
Hi Compiwurstel!
Ich dachte mir schon, dass es da eine Möglichkeit gibt, wenngleich ich mit Deinem Hinweis leider nicht viel anfangen kann, weil ich nicht weiß, wie er umzusetzen wäre (s.o.).
Dafür kannst du die Funktion strtotime() benutzen. Sie gibt einen Timestamp zurück, den du in die date()-Funktion einsetzen kannst.
MfG H☼psel
Hallo Hopsel,
vielen Dank für den Tipp. Das Problem ist "der Einbau". Ich hab mir jetzt anders geholfen: Heute ist ja Freitag, also der erste "Zeitsprung" und der hat schon mal - dank deiner Hilfe - funktioniert. Dann habe ich einfach den Wert weiter erhöht ("$woche = date('W') + 2;" usw.). Da auch das funktioniert hat, gehe ich davon aus, dass alles prima laufen wird.
Also, noch mal: ganz herzlichen Dank und Gruß
Compiwurstel