Autor Zpráva
shaman171
Profil
Ahoj,
nevím jak to přesně nazvat, ale jde o to, že mám rozpis (vždy na měsíc dopředu) , dle kterého vysíláme internetové rádio. Rozpis nechci každý den na stránkách složitě editovat a tak používám script na Svátek na den kdy jsem smazal dny a do kazdého dnu si vkládám můj rozpis, který vypadá například:
if ($den==22) echo"23.BŘEZNA 2010= FÉNIX REVUE=17:00-20:00= Luboš Zemanec + Lukáš Černosta </br> 24.BŘEZNA 2010 = VEČERNÍ ŠPLECHTY = 17:00-20:00 = Honza Hejduk </br> 26.BŘEZNA 2010= FÉNIX REVUE=17:00-20:00= Mirka Strádalová + Vojta Kačírek </br> 28.BŘEZNA 2010 = HVĚZDY JAKO HVĚZDY = 16:00-19:00 = Luboš Zemanec  +  <a href=\"http://www.fenixradio.net/newfenixuvhost.htm\" target=\"_top\">HOST</a> </br> <span class=\"redaktori\">[Redaktoři: Dáša Vildová a Jakub Müller]</span>   +  <a href=\"http://www.fenixradio.net/newfenixuvhost.htm\" target=\"_top\">HOST</a> </br> <span class=\"redaktori\">[Redaktoři: Dáša Vildová a Jakub Müller]</span>   </br> 29.BŘEZNA 2010= FÉNIX REVUE=17:00-20:00= Mirka Strádalová + Lukáš Černosta </br> 31.BŘEZNA 2010 = VEČERNÍ ŠPLECHTY = 17:00-20:00 = Honza Hejduk";
if ($den==23) echo"23.BŘEZNA 2010= FÉNIX REVUE=17:00-20:00= Luboš Zemanec + Lukáš Černosta </br> 24.BŘEZNA 2010 = VEČERNÍ ŠPLECHTY = 17:00-20:00 = Honza Hejduk </br> 26.BŘEZNA 2010= FÉNIX REVUE=17:00-20:00= Mirka Strádalová + Vojta Kačírek </br> 28.BŘEZNA 2010 = HVĚZDY JAKO HVĚZDY = 16:00-19:00 = Luboš Zemanec  +  <a href=\"http://www.fenixradio.net/newfenixuvhost.htm\" target=\"_top\">HOST</a> </br> <span class=\"redaktori\">[Redaktoři: Dáša Vildová a Jakub Müller]</span>   +  <a href=\"http://www.fenixradio.net/newfenixuvhost.htm\" target=\"_top\">HOST</a> </br> <span class=\"redaktori\">[Redaktoři: Dáša Vildová a Jakub Müller]</span>   </br> 29.BŘEZNA 2010= FÉNIX REVUE=17:00-20:00= Mirka Strádalová + Lukáš Černosta </br> 31.BŘEZNA 2010 = VEČERNÍ ŠPLECHTY = 17:00-20:00 = Honza Hejduk";
if ($den==24) echo"24.BŘEZNA 2010 = VEČERNÍ ŠPLECHTY = 17:00-20:00 = Honza Hejduk </br> 26.BŘEZNA 2010= FÉNIX REVUE=17:00-20:00= Mirka Strádalová + Vojta Kačírek </br> 28.BŘEZNA 2010 = HVĚZDY JAKO HVĚZDY = 16:00-19:00 = Luboš Zemanec  +  <a href=\"http://www.fenixradio.net/newfenixuvhost.htm\" target=\"_top\">HOST</a> </br> <span class=\"redaktori\">[Redaktoři: Dáša Vildová a Jakub Müller]</span>   +  <a href=\"http://www.fenixradio.net/newfenixuvhost.htm\" target=\"_top\">HOST</a> </br> <span class=\"redaktori\">[Redaktoři: Dáša Vildová a Jakub Müller]</span>   </br> 29.BŘEZNA 2010= FÉNIX REVUE=17:00-20:00= Mirka Strádalová + Lukáš Černosta </br> 31.BŘEZNA 2010 = VEČERNÍ ŠPLECHTY = 17:00-20:00 = Honza Hejduk";

Jak vidéte je to změť znaků, kdy každý následující den je umazán den předchozí a zobrazí se to bez něj, je to podle mého názoru velice krkolomné řešení (v PHP se moc nevyznám)
Jak to vyřešit lépe? Napríklad tím, že bych udělal TXT soubor s rozpisem a k tomu dodělat PHP script, který by určité dny mazal jeden řádek a zbytek zobrazil? Problém by pak asi byl v tom, že né na každý den je rozpis napsaný, některé dny jsou vynechané a rozpis by musel zůstat stejný... napadá Vás lepší řešení?
Poslední problém je, že nemám prozatím přístup k databázy, ovšem v krajním případě bych jí možná dokázal zařídit, zatím mi ji hosting nedal.
Moc děkuju za každou pomoc.
Majkl578
Profil
Napadá mě takové poměrně zajímavé řešení. Využilo by se konfiguračního INI souboru, ve kterém by se stanovily jednotlivé hodnoty pro daná data.

Abych nastínil jak to řešit:
foo.ini:
1 = a
4 = b
6 = c
14 =d
18 = e
22 = f
PHP script:
$data = parse_ini_file('foo.ini');//načte pole, kde číslo dne bude asociativní klíč
for ($day = date('d'), $last = date('t'); $day <= $last; $day++) {
  echo 'Den ' . $day . (isset($data[(string) $day]) ? ': ' . $data[(string) $day] : ' nemá žádný záznam') . "\n";
}
shaman171
Profil
Majkl578:
Moc děkuju za reakci, ovšem mě tohle nic neříká, jak jsem psal řeším to tímto způsobem protože v PHP jsme vážně začátečník a nebyl pro mě problém tenhle script předělat, ale s tímhle co píšeš nevím moc jak si poradit :-(
Majkl578
Profil
shaman171:
V tom případě zkus lépe specifikovat, jak to má fungovat. Jestli se zobrazují pouze položky aktuálního měsíce nebo nějakého období apod.
Moje současné řešení vypíše položky pro zbytek aktuálního měsíce.
shaman171
Profil
Moc děkuju.
Ano, vždy by se měl vypisovat aktuální měsíc, s tím, že dny co už byly se vypisovat nesmí a až budou zbývat poslední dva dny v měsící, musí se k tomu dovypisovat i výpis na další měsíc.
Majkl578
Profil
Dobře tedy.
Zde je PHP script, který by to měl obstarat.
<?php
$data = parse_ini_file(dirname(__FILE__) . '/rozpis.ini');//načte pole, kde číslo dne bude asociativní klíč

$dates = array();

for ($day = 29, $last = date('t'); $day <= $last; $day++) {
    $dates[] = $day . '.' . (int) date('m') . '.';
}

if (29 > date('t') - 2) {
    for ($day = 1, $last = date('t', strtotime('+3 days')); $day <= $last; $day++) {
        $dates[] = $day . '.' . (int) date('m', strtotime('+3 days')) . '.';
    }
}

foreach ($dates as $date) {
  echo 'Den ' . $date . (isset($data[(string) $date]) ? ': ' . $data[(string) $date] : ' nemá žádný záznam') . "<br>";
}
A k tomu příslušný INI soubor s názvem 'rozpis.ini' (ve stejné složce) :
1.4.    = a
4.4.    = b
6.4.    = c
14.4.    = d
18.4.    = e
22.4.    = f
27.4.    = g
2.5.    = h
Formát:
den.měsíc. = hodnota

Obojí v archivu zde.
shaman171
Profil
Moc děkuju, opravdu, ovšem když jsem t zkoušel, (zapoměl jsi tam ukončit PHP znaky "?> ") coý je v pohdoe, ovšem když jsem to nahrál a vyzkoušel vyhodilo mi to toto:
Den 29.4. nemá žádný záznam
Den 30.4. nemá žádný záznam
Den 1.4.: a
Den 2.4. nemá žádný záznam
Den 3.4. nemá žádný záznam
Den 4.4.: b
Den 5.4. nemá žádný záznam
Den 6.4.: c
Den 7.4. nemá žádný záznam
Den 8.4. nemá žádný záznam
Den 9.4. nemá žádný záznam
Den 10.4. nemá žádný záznam
Den 11.4. nemá žádný záznam
Den 12.4. nemá žádný záznam
Den 13.4. nemá žádný záznam
Den 14.4.: d
Den 15.4. nemá žádný záznam
Den 16.4. nemá žádný záznam
Den 17.4. nemá žádný záznam
Den 18.4.: e
Den 19.4. nemá žádný záznam
Den 20.4. nemá žádný záznam
Den 21.4. nemá žádný záznam
Den 22.4.: f
Den 23.4. nemá žádný záznam
Den 24.4. nemá žádný záznam
Den 25.4. nemá žádný záznam
Den 26.4. nemá žádný záznam
Den 27.4.: g
Den 28.4. nemá žádný záznam
Den 29.4. nemá žádný záznam
Den 30.4. nemá žádný záznam


Ty paznaky mi nevadí, to je kódování, ovšem proč mi to vyhuzuje i dny co nemají záznam? A navíc to vypisuje celý měsíc a né měsíc od aktuálního data, aby tam nebyly staré záznamy.
Majkl578
Profil
Kdyby jenom to, udělal jsem tam i ošklivou chybku. :)
Tady je upravená verze. Snad už funkční.
Kódování je UTF-8.
shaman171
Profil
Majkl578:
tohle už je úžasný!
Moc děkuju opravdu! Ulehčil jsi mi tím orovsky náročnou editaci tech mejch střeštěnejch souborů. Škoda že tu nefunguje něco jako virtuální peníze jako na jiných fórech poslal byhc ti co bych měl. Moc děkuju!!
Majkl578
Profil
shaman171:
Není zač.
shaman171
Profil
Ahoj, tak jsem narazil trochu na problém, nenašel jsem na netu návod jakou syntaxy má ini soubor, potřebuju do něj dát i moje definovyný CSS třídy a různý další znaky, vím že v PHP se to neguje například zpětným lomítkem nevíte jak je to tady v INI souborech? jak tam napsat HTML tagy aby mi to neházelo chyby? Moc díky.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0