Sivuni etusivulla on kohta, jossa pyörii linkkjä muille sivuille.
Aina kun etusivulle tullaan niin näytetään satunnainen linkki.
Nyt kuitenkin olisi ideana tehdä skripti joka hakisi tietyn linkin kellonajan
mukaan. Linkit on määritelty tiedostoon vaikkapa näin:
09:00<>http://linkki1 10:00<>http://linkki2 jne...
Eli jos kello on 09:00 - 10:00 välillä, niin näytetään linkki 1. klo. 10:00 - 11:00 näytetään siis linkki 2. Kuinka tälläinen tsydeemi olisi järkevintä toteuttaa?
Yksi tapa on ottaa palvelimen kellosta time() funktiolla aika ja parsia siitä tunnit, jonka jälkeen switch case rakenteella oikea linkki peliin. Esim.
Hirveä switch rakenne, ei kannata.
Laita tiedosto muotoon:
0,otsikko1
1,otsikko2
2,otsikko3
Sen jälkeen lue tiedosto array muotoon ja etsi silmukalla (esim. foreach) oikea tunti jonka saat kuluvasta kellonajasta siis ihan date('H). Tai vielä parempi jos array on indeksoitu tuntien mukaan, ehdottomasti nopein tapa eikä tarvita edes silmukkaa.
Tuo pieni 'h' palauttaa kuluvan tunnin 12-tunnin kellon mukaan (1-12), iso H palauttaa sen 24 tuntisella kellolla (0-23).
Ja Teuron vinkistäkin voit oikaista suoraan ilman turhia muuttujia jos sen haluat tehdä vinkin mukaan eli:
<?php switch(date('H')): case 0: // linkki 00:00 - 00:59 break; case 1: // linkki 01:00 - 01:59 break; endswitch; ?>
Mut tuossa on 24 eri kohtaa...helpompaa jollain yksinkertaisemmalla silmukalla.
-W-
Teuron tapaisesti kannattaa tehdä, mutta 24 eri vaihtoehtoa case-lauseella tuntuu melko kömpelöltä koodaukselta.
Laita tiedot array-muuttujaan ja ota tunnin mukaan oikea solu.
edit:
muutkin tuli mukaan
Wizard: Itse en missään nimessä pudottaisi muuttujaa pois jatkokehityksenkään kannalta. Itse laittaisin esim. muuttujaan pelkän urlin, joka tulostettaisiin vasta lopuksi html-linkkinä. Myöhemmin css-luokan lisääminen yms. vaatii paljon vähemmän vaivaa.
Aivan arvelinkin tuon olevan kömpelö, joten hyvä että tuli parempi ratkaisu.
Lebe80 kirjoitti:
Teuron tapaisesti kannattaa tehdä, mutta 24 eri vaihtoehtoa case-lauseella tuntuu melko kömpelöltä koodaukselta.
Laita tiedot array-muuttujaan ja ota tunnin mukaan oikea solu.
edit:
muutkin tuli mukaan
Wizard: Itse en missään nimessä pudottaisi muuttujaa pois jatkokehityksenkään kannalta. Itse laittaisin esim. muuttujaan pelkän urlin, joka tulostettaisiin vasta lopuksi html-linkkinä. Myöhemmin css-luokan lisääminen yms. vaatii paljon vähemmän vaivaa.
Viittaan turhalla muuttujalla tuohon $tunti muuttujaan. Tuosta switch rakenteesta heittäisin suoraan return käskyllä otsikon, koska käyttäisin luonnollisesti olio-ohjelmointia. ;)
Mutta helpoin tapa mielestäni olisi jotakuinkin näin:
Tiedostossa TASAN 24 riviä näin:
otsikko 00:00 - 00:59
otsikko 01:00 - 01:59
otsikko 02:00 - 02:59
otsikko 03:00 - 03:59
Tuon pitäisi toimia noin ihan suoraan jos nyt oikein nuo funktioiden muodot muistan...
-W-
Aihe on jo aika vanha, joten et voi enää vastata siihen.