Autor Zpráva
navik
Profil *
Dobrý večer,
mám stránky o cestování (www.cestujeme-evropou.cz) a chtěl bych na ně umístit kurzy několika základních měn. Chtěl bych se zeptat, jak moc složité to je programátorsky a zda by mi někdo nemohl poskytnou návod jak na to? Nebo aspoň nějak navést?


Případně, kdyby tu byl šikovný programátor, který by mi to dokázal hodit na web, tak se mi může i s přibližnou cenovou nabídkou ozvat na info@cestujeme-evropou.cz

Moderátor Petr ZZZ: Titulek „Kurzy na stránky“ nebyl jednoznačný. Příště zkus prosím vymyslet lepší.
Michalm
Profil *
http://www.kurzy.cz/html-kody/tabulky/kurzy_meny_listky.htm
Mohla by se hodit tato stránka.
navik
Profil *
Ano o této stránce vím, ale s přidáním toho kódu hodím na stránky mnoho zbytečných externích odkazů navíc a to já nechci. Proto bych raději preferoval si to nějak sám udělat
Kajman
Profil
navik:
Proto bych raději preferoval si to nějak sám udělat

Pokud stačí středové kurzy ČNB, můžete si je každý den stáhnout viz.
https://www.cnb.cz/cs/faq/kurzy_devizoveho_trhu.html
navik
Profil *
Ano to vím, ale co nevím je, jak z toho vytahnout pouze ty data, který chci aby se zobrazovala na mých stránkách. Například chci na aby se mi na stránkách zobrazoval aktuální kurz Eura, tak nevím jak zařídit to aby se mi z toho souboru vypsala na webu pouze ta jedna hodnota z toho celého txt souboru ČNB.
Chro
Profil
PHP skript ti můžu napsat zdarma, je to na cca 20 řádků a měl by být umístěn normálně ve stránce mezi <body> a </body> v souboru s příponou php (př. index.php), pokud nemáš nastavený server s vykonáváním skriptu i např. v souborech s koncovkou html/htm. Jak chceš data formátovat: do tabulky (<table>), do seznamu (<li>), jinak?

Moderátor Petr ZZZ: Napiš prosím skript sem do diskuse nebo si zadej inzerát. Děkuji za pochopení.
navik
Profil *
Děkuji, to by si byl hodný. Asi do tabulky :)
Chro
Profil
Tento kód vlož za <body> nebo úplně na začátek stránky, resp. souboru.
<?php

function zobrazkurzy($meny = '')
{
$chyba = FALSE;
$soubor = 'kurzy.txt';
$akt_datum = date('d.m.Y', time());
if ((file_exists($soubor) && date('d.m.Y', filectime($soubor)) !== $akt_datum)
|| (!file_exists($soubor)))
{
$data = @file_get_contents('http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt');

if ($data)
{
file_put_contents($soubor, $data, LOCK_EX);
}
else
{
$chyba = TRUE;
}
}
 
if (!$chyba)
{
$data = file($soubor, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$vystup = '';
$index = 0;
foreach ($data as $radek)
{
$polozky = explode('|', $radek);
if ((strpos($meny, $polozky[3]) !== FALSE)
|| ($meny == '' && $index > 1))
{
$vystup.= '<tr><td>'.(implode('</td><td>', $polozky))."</td></tr>\n";
}
$index++;
}
echo <<<EOT
<table class="styl1">
<tr><th>Země</th><th>Měna</th><th>Množství</th><th>Kód</th><th>Kurz</th></tr>
{$vystup}
</table>
EOT;
}
else
{
echo <<<EOT
<div class="styl2">Kurzy nelze zobrazit</div>
EOT;
}
}
?>
Tento kód pak kdekoliv do těla stránky.
<?php
zobrazkurzy();
//vypis vsech men

zobrazkurzy('USD EUR GBP');
//vypis kurzu dolaru, eura, libry
?>
navik
Profil *
Děkuji moc, přesně tohle jsem potřeboval!
Chro
Profil
Chybně jsem vyhodnotil strukturu souboru poskytovaného ČNB. Může se tedy stát, že skript výše vypíše při určitém nastavení zobrazování chyb PHP hlášku Undefined index týkající se pole $polozky. Opravuji tedy a nahrazuji cyklus foreach za vhodnější for.
<?php

function zobrazkurzy($meny = '')
{
$chyba = FALSE;
$soubor = 'kurzy.txt';
$akt_datum = date('d.m.Y', time());
if ((file_exists($soubor) && date('d.m.Y', filectime($soubor)) !== $akt_datum)
|| (!file_exists($soubor)))
{
$data = @file_get_contents('http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt');

if ($data)
{
file_put_contents($soubor, $data, LOCK_EX);
}
else
{
$chyba = TRUE;
}
}
 
if (!$chyba)
{
$data = file($soubor, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$vystup = '';
$pocet = count($data);
for ($i = 2; $i < $pocet; $i++)
{
$polozky = explode('|', $data[$i]);
if ((strpos($meny, $polozky[3]) !== FALSE)
|| ($meny == ''))
{
$vystup.= '<tr><td>'.(implode('</td><td>', $polozky))."</td></tr>\n";
}
}
echo <<<EOT
<table class="styl1">
<tr><th>Země</th><th>Měna</th><th>Množství</th><th>Kód</th><th>Kurz</th></tr>
{$vystup}
</table>
EOT;
}
else
{
echo <<<EOT
<div class="styl2">Kurzy nelze zobrazit</div>
EOT;
}
}
?>

<?php
zobrazkurzy();
//vypis vsech men

zobrazkurzy('USD EUR GBP');
//vypis kurzu dolaru, eura, libry

zobrazkurzy('THB');
//muj oblibeny kurz ;)
?>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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