skrypt na otwieranie pliku w zalezności od daty

skrypt na otwieranie pliku w zalezności od daty
IP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 84
0

witam,

skrypt działa tak, że w zależności od od daty otwiera się dana strona, która ma nazwę złożoną z daty

Kopiuj
<?php
//pobranie daty
$data = date("Ymd", strtotime("+ 0 days"));
$sciezka = '01okazje/';
//sprawdzmy czy istnieje plik dla dzisiejszej daty - podstawowy
if (file_exists($sciezka.$data.'.php')) {
//zaciągamy plik podstawowy o nazwie z datą np. 20110704cos.php
include($sciezka.$data.'.php');
} else {
//jeśli nie ma pliku dla tej daty
    readfile('jakiś adres strony alternatywnej');
}
?>

co trzeba zmienić w tym skrypcie, aby szukał on w katalogu 01okazje nie tylko pliku o nazwie powiedzmy 20250115.php ale mógł być też plik o nazwie 20250115dowolna treść np. 20250115pomagamy.php, albo 20250115witamy.php, czyli jednym zdaniem po elemencie nazwy związanej z datą występowało dowolne rozrzeżenie

druga część pytania to czy ten skrypt da się się przerobić tak, żeby wykorzystując tę zasadę o dowolności nazwy po dacie było tak, że jakiś plik otwiera się wtedy gdy data jest w danym okresie czasowym np. od 15-26 stycznia 2025 roku

chyba, że muszę szukać na tę druga opcję innego skryptu :( jestem słaby z php, i liczę BARDZO na Waszą pomoc ;)

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
1

A jaka pewność, że nie będzie 2 takich samych plików?
Zobacz użycie glob
https://www.php.net/manual/en/function.glob.php
i taki przykład:

Kopiuj
<?php
// Definicja stałej ścieżki
const SCIEZKA = '01okazje/';

// Pobranie daty
$data = date("Ymd", strtotime("+ 0 days"));

$plik_wzor = SCIEZKA . $data . '*.php';
$pasujace_pliki = glob($plik_wzor);

if (count($pasujace_pliki) === 1) {
    include($pasujace_pliki[0]);
} elseif (count($pasujace_pliki) > 1) {
    throw new Exception("Znaleziono więcej niż jeden plik pasujący do wzorca: " . implode(", ", $pasujace_pliki));
} else {
    throw new Exception("Nie znaleziono pliku dla daty: " . $data);
}
IP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 84
0
jurek1980 napisał(a):

A jaka pewność, że nie będzie 2 takich samych plików?
Zobacz użycie glob
https://www.php.net/manual/en/function.glob.php
i taki przykład:

Kopiuj
<?php
// Definicja stałej ścieżki
const SCIEZKA = '01okazje/';

// Pobranie daty
$data = date("Ymd", strtotime("+ 0 days"));

$plik_wzor = SCIEZKA . $data . '*.php';
$pasujace_pliki = glob($plik_wzor);

if (count($pasujace_pliki) === 1) {
    include($pasujace_pliki[0]);
} elseif (count($pasujace_pliki) > 1) {
    throw new Exception("Znaleziono więcej niż jeden plik pasujący do wzorca: " . implode(", ", $pasujace_pliki));
} else {
    throw new Exception("Nie znaleziono pliku dla daty: " . $data);
}

dzięki jurku, trochę pomieszałem z tą drugą :( to moja informatyczna indolencja - przepraszam

chodzi mi o sytuację taką, że jakiś plik php, sprawdza czy dzisiejsza data znajduje się w jakimś przedziale czasu i jeżeli jest to wyświetla konkretny plik , a jak data jest spoza ustawionego okresu to wyświetla inny plik

dziękuję za twojego posta tez mi coś rozjaśnił 😉

pozdrawiam

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
1

Spróbuj więc na podstawie dokumentacji napisać taki wzorzec (pattern), który spełni Twoje wymagania. Jak zaczniesz to pewnie pomożemy dalej.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.