PHP: Vložení svátku

May 28th 2014

PHP LogoPři tvorbě webových stránek je v určitých případech vhodné implementovat různé obecné informace. Například jaký je dnes datum a kdo má svátek. Datum lze vložit vcelku jednoduše pomocí PHP funkce date(). Však pro vložení svátku to již tak lehké není. Kromě toho, že musíme mít vytvořenou jakousi databázi, nebo seznam, českých jmen, potřebujeme také počítat s přestupnými roky a podobně.
Níže Vám vložím kód, který vypíše například toto:

Dnes je středa, 28. května, svátek má Vilém.

Kód pro tento výpis je vcelku krátky, až na dlouhý seznam jmen.

<div class="svatek"> <?php $svatky = array('je Nový rok', 'svátek má Karina.', 'svátek má Radmila.', 'svátek má Diana.', 'svátek má Dalimil.', 'jsou Tri králové', 'svátek má svátek má Vilma.', 'svátek má Cestmír.', 'svátek má Vladan.', 'svátek má Bretislav.', 'svátek má Bohdana.', 'svátek má Pravoslav.', 'svátek má Edita.', 'svátek má Radovan.', 'svátek má Alice.', 'svátek má Ctirad.', 'svátek má Drahoslav.', 'svátek má Vladislav.', 'svátek má Doubravka.', 'svátek má Ilona.', 'svátek má Bela.', 'svátek má Slavomír.', 'svátek má Zdenek.', 'svátek má Milena.', 'svátek má Miloš.', 'svátek má Zora.', 'svátek má Ingrid.', 'svátek má Otýlie.', 'svátek má Zdislava.', 'svátek má Robin.', 'svátek má Marika.', 'svátek má Hynek.', 'svátek má Nela.', 'svátek má Blažej.', 'svátek má Jarmila.', 'svátek má Dobromila.', 'svátek má Vanda.', 'svátek má Veronika.', 'svátek má Milada.', 'svátek má Apolena.', 'svátek má Mojmír.', 'svátek má Božena.', 'svátek má Slavena.', 'svátek má Venceslav.', 'svátek má Valentýn.', 'svátek má Jirina.', 'svátek má Ljuba.', 'svátek má Miloslava.', 'svátek má Gizela.', 'svátek má Patrik.', 'svátek má Oldrich.', 'svátek má Lenka.', 'svátek má Petr.', 'svátek má Svatopluk.', 'svátek má Matej.', 'svátek má Liliana.', 'svátek má Dorota.', 'svátek má Alexandr.', 'svátek má Lumír.', 'svátek má Horymír. ', 'svátek má Bedrich.', 'svátek má Anežka.', 'svátek má Kamil.', 'svátek má Stela.', 'svátek má Kazimír.', 'svátek má Miroslav.', 'svátek má Tomáš.', 'svátek má Gabriela.', 'svátek má Františka.', 'svátek má Viktorie.', 'svátek má Andela.', 'svátek má Rehor.', 'svátek má Ružena.', 'svátek má Rút a Matylda.', 'svátek má Ida.', 'svátek má Elena a Herbert.', 'svátek má Vlastimil.', 'svátek má Eduard.', 'svátek má Josef.', 'svátek má Svetlana.', 'svátek má Radek.', 'svátek má Leona.', 'svátek má Ivona.', 'svátek má Gabriel.', 'svátek má Marián.', 'svátek má Emanuel.', 'svátek má Dita.', 'svátek má Sona.', 'svátek má Tatána.', 'svátek má Arnošt.', 'svátek má Kvido.', 'svátek má Hugo.', 'svátek má Erika.', 'svátek má Richard.', 'svátek má Ivana.', 'svátek má Miroslava.', 'svátek má Vendula. ', 'svátek má Herman a Hermína.', 'svátek má Ema.', 'svátek má Dušan.', 'svátek má Darja.', 'svátek má Izabela.', 'svátek má Julius.', 'svátek má Aleš.', 'svátek má Vincenc.', 'svátek má Anastázie.', 'svátek má Irena.', 'svátek má Rudolf. ', 'svátek má Valérie.', 'svátek má Rostislav.', 'svátek má Marcela.', 'svátek má Alexandra.', 'svátek má Evžénie.', 'svátek má Vojtech.', 'svátek má Jirí.', 'svátek má Marek.', 'svátek má Oto.', 'svátek má Jaroslav.', 'svátek má Vlastislav.', 'svátek má Robert.', 'svátek má Blahoslav.', 'je svátek práce', 'svátek má Zikmund.', 'svátek má Alexej.', 'svátek má Kvetoslav.', 'svátek má Klaudie.', 'svátek má Radoslav.', 'svátek má Stanislav.', 'je Statní svátek - Den vítezství.', 'svátek má Ctibor.', 'svátek má Blažena.', 'svátek má Svatava.', 'svátek má Pankrác.', 'svátek má Servác.', 'svátek má Bonifác.', 'svátek má Žofie.', 'svátek má Premysl.', 'svátek má Aneta.', 'svátek má Nataša.', 'svátek má Ivo.', 'svátek má Zbyšek.', 'svátek má Monika.', 'svátek má Emil.', 'svátek má Vladimír.', 'svátek má Jana.', 'svátek má Viola.', 'svátek má Filip.', 'svátek má Valdemar.', 'svátek má Vilém.', 'svátek má Maxim.', 'svátek má Ferdinand.', 'svátek má Kamila.', 'svátek má Laura.', 'svátek má Jarmil.', 'svátek má Tamara.', 'svátek má Dalibor.', 'svátek má Dobroslav.', 'svátek má Norbert.', 'svátek má Iveta.', 'svátek má Medard.', 'svátek má Stanislava.', 'svátek má Gita.', 'svátek má Bruno.', 'svátek má Antonie.', 'svátek má Antonín.', 'svátek má Roland.', 'svátek má Vít.', 'svátek má Zbynek.', 'svátek má Adolf.', 'svátek má Milan. ', 'svátek má Leoš.', 'svátek má Kveta.', 'svátek má Alois.', 'svátek má Pavla. ', 'svátek má Zdenka.', 'svátek má Jan.', 'svátek má Ivan.', 'svátek má Adriana.', 'svátek má Ladislav.', 'svátek má Lubomír. ', 'svátek má Petr a Pavel.', 'svátek má Šárka.', 'svátek má Jaroslava.', 'svátek má Patricie.', 'svátek má Radomír.', 'svátek má Prokop.', 'je státní svátek - Cyril a Metodej.', 'je státní svátek - Mistr Jan Hus.', 'svátek má Bohuslava.', 'svátek má Nora.', 'svátek má Drahoslava.', 'svátek mají Libuše a Amálie.', 'svátek má Olga.', 'svátek má Borek.', 'svátek má Markéta.', 'svátek má Karolína.', 'svátek má Jindrich.', 'svátek má Luboš.', 'svátek má Martina.', 'svátek má Drahomíra.', 'svátek má Cenek.', 'svátek má Ilja.', 'svátek má Vítezslav.', 'svátek má Magdaléna.', 'svátek má Libor.', 'svátek má Kristýna.', 'svátek má Jakub.', 'svátek má Anna.', 'svátek má Veroslav.', 'svátek má Viktor.', 'svátek má Marta.', 'svátek má Borivoj.', 'svátek má Ignác.', 'svátek má Oskar.', 'svátek má Gustav.', 'svátek má Miluše.', 'svátek má Dominik.', 'svátek má Kristián.', 'svátek má Oldriška.', 'svátek má Lada.', 'svátek má Sobeslav.', 'svátek má Roman.', 'svátek má Vavrinec.', 'svátek má Zuzana.', 'svátek má Klára.', 'svátek má Alena.', 'svátek má Alan.', 'svátek má Hana.', 'svátek má Jáchym.', 'svátek má Petra.', 'svátek má Helena.', 'svátek má Ludvík.', 'svátek má Bernard.', 'svátek má Johana.', 'svátek má Bohuslav.', 'svátek má Sandra.', 'svátek má Bartolomej.', 'svátek má Radim.', 'svátek
má Ludek.', 'svátek má Otakar.', 'svátek má Augustýn.', 'svátek má Evelína.', 'svátek má Vladena.', 'svátek má Pavlína.', 'svátek mají Linda a Samuel.', 'svátek má Adéla.', 'svátek má Bronislav.', 'svátek má Jindriška.', 'svátek má Boris.', 'svátek má Boleslav.', 'svátek má Regína.', 'svátek má Mariana.', 'svátek má Daniela.', 'svátek má Irma.', 'svátek má Denisa.', 'svátek má Marie.', 'svátek má Lubor.', 'svátek má Radka.', 'svátek má Jolana.', 'svátek má Ludmila.', 'svátek má Nadežda.', 'svátek má Kryštof.', 'svátek má Zita.', 'svátek má Oleg.', 'svátek má Matouš.', 'svátek má Darina.', 'svátek má Berta.', 'svátek má Jaromír.', 'svátek má Zlata.', 'svátek má Andrea.', 'svátek má Jonáš.', 'svátek má Václav.', 'svátek má Michal.', 'svátek má Jeroným.', 'svátek má Igor.', 'svátek má Olívie a Oliver.', 'svátek má Bohumil.', 'svátek má František.', 'svátek má Eliška.', 'svátek má Hanuš.', 'svátek má Justýna.', 'svátek má Vera.', 'svátek mají Štefan a Sára.', 'svátek má Marina.', 'svátek má Andrej.', 'svátek má Marcel.', 'svátek má Renáta.', 'svátek má Agáta.', 'svátek má Tereza.', 'svátek má Havel.', 'svátek má Hedvika.', 'svátek má Lukáš. ', 'svátek má Michaela.', 'svátek má Vendelín.', 'svátek má Brigita.', 'svátek má Sabina.', 'svátek má Teodor.', 'svátek má Nina.', 'svátek má Beáta.', 'svátek má Erik.', 'svátek mají Šarlota a Zoe.', 'je Státní svátek', 'svátek má Silvie.', 'svátek má Tadeáš.', 'svátek má Štepánka.', 'svátek má Felix.', 'ucteme Památku zesnulých', 'svátek má Hubert.', 'svátek má Karel.', 'svátek má Miriam.', 'svátek má Libena.', 'svátek má Saskie.', 'svátek má Bohumír.', 'svátek má Bohdan.', 'svátek má Evžen.', 'svátek má Martin.', 'svátek má Benedikt.', 'svátek má Tibor.', 'svátek má Sáva.', 'svátek má Leopold.', 'svátek má Otmar.', 'svátek má Mahuléna.', 'svátek má Romana.', 'svátek má Alžbeta.', 'svátek má Nikola.', 'svátek má Albert.', 'svátek má Cecílie.', 'svátek má Klement.', 'svátek má Emílie.', 'svátek má Katerina.', 'svátek má Artur.', 'svátek má Xenie.', 'svátek má René.', 'svátek má Zina.', 'svátek má Ondrej.', 'svátek má Iva.', 'svátek má Blanka.', 'svátek má Svatoslav.', 'svátek má Barbora.', 'svátek má Jitka.', 'svátek má Mikuláš.', 'svátek má Ambrož.', 'svátek má Kvetoslava.', 'svátek má Vratislav.', 'svátek má Julie.', 'svátek má Dana.', 'svátek má Simona.', 'svátek má Lucie.', 'svátek má Lýdie.', 'svátek má Radana.', 'svátek má Albína.', 'svátek má Daniel.', 'svátek má Miloslav.', 'svátek má Ester.', 'svátek má Dagmar.', 'svátek má Natálie.', 'svátek má Šimon.', 'svátek má Vlasta.', 'svátek má Adam a Eva a je Štedrý den', 'je 1.svátek vánocní', 'svátek má Štepán a je 2.svátek vánocní', 'svátek má Žaneta.', 'svátek má Bohumila.', 'svátek má Judita.', 'svátek má David.', 'je Silvestr');
$aj = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
$cz = array("ledna", "února", "března", "dubna", "května", "června", "července", "srpna", "září", "října", "listopadu", "prosince", "neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota");
$dnes = Date("z", Time());
$mesic = Date("m", Time());
$rok = Date("Y", Time());
if (!((($rok % 4 == 0 and $rok % 100 != 0) or $rok % 400 == 0) and $mesic > 2))
$dnes+=1;
$svatek = $svatky[$dnes];
$svatek = "Dnes je " .
str_replace($aj, $cz, date("l", time())) . ", " .
str_replace($aj, $cz, date("d. F", time())) . ", " .
$svatek;
echo $svatek;
?></div>

Výpis je rovnou obalen do <div class=”svatek”>. Pro stylizaci tedy postačí do Vašeho souboru CSS vložit například tento styl, který tuto informaci ukotví jako na této stránce.

.svatek{
margin:0px;
padding:0px;
font-size:small;
float:right;}