RJWEBDESIGN - tvorba webových prezentací - Blogspot - PHP - Kurzovní lístek

RJWEBDESIGN - tvorba webových prezentací

Novinky

27.06.2010
Spoluvyvíjeli jsme aplikaci pro klienta České Dráhy. Aplikace je opět striktně soukromá, nelze uvést odkaz.

16.05.2010
Pro Vodafone jsme naprogramovali aplikaci, která vyhodnocuje interní statistiky. Vývoj trval 2 měsíce. Aplikace není veřejná, proto neuvádím odkaz.

08.03.2010
Nová firemní prezentace firmy AH Electronics s.r.o, k velké spokojenosti zákazníka se připravuje internetový obchod.

30.01.2010
Připraveno nové diskusní fórum. více

02.12.2009
Po několika měsících náročné práce jsem spustil herní portál GAMEWAY.CZ více


Něco málo o mé osobě

Je mi 28 let, bydlím v hlavním městě ČR. Webdesignem a programováním se zabývám již několik let. Pracuji jako programátor ve společnosti AndWeb s.r.o. Ovládám velmi dobře XHTML, CSS, PHP, MYSQL. Středně pokročilou znalost jQuery, 2D Grafika (Adobe Photoshop, SEO optimalizace.


Oblíbené stránky


Cizí krmivo


Přispívám a nechávam si poradit


Sport, sleduji, hraji


Reklama

Španělský fotbal - spanelskyfotbal.cz
Hlavní Logo

Poslední komentáře

  • RJ -

    [369] Když nebudeš vědět něco konkrétního, klidně se zeptej, ale neptej se na celý skript :)

  • Smoula -

    .. sak to ze si to len „vyjal“… neboj zaklady mam dobre len ma zaujala tvoja 2.varianta na mojej stranke mam tiez aktualizaciu vysledkov, len trosku zlozitejsiu…

    Ale ok.. idem sa potrapit :)

  • RJ -

    [367] Je to takový nástin, jak by to mohlo fungovat, vyjal jsem to jako torzo ze svého fotbalového webu.

    Pokud máš nějaké základy v PHP tak to dáš dokupy, pokud ne, tak se PHP nejdřív trošku nauč, stejně bys později nevěděl složitejší věci i kdybych Ti s tímto pomohl.

    :-)

  • Smoula -

    [366]

    Ahoj, mne sa paci ta 2.varianta – vytiahnes z DB aktualne zapasy, zadas vysledky a potom POSTnes, len nejako mi ten script nejde rozbehat :(

  • RJ -

    [365] Ano, samozřejmě. Jednotlivé inputy ponesou název pole. Tj.

    [code]

    A poté projdeš post POLE a uložíš

    foreach ($_POST[„gol1“] …)
    [/code]

Statistika

  • Článků celkem: 15
  • Komentářů celkem: 108

Blogspot » PHP » Kurzovní lístek

Kurzovní lístek

Neděle, 13 .Ledna 2008, 10:08, prečteno 1728x

Pokud potřebujete mít na svých webových stránkách aktuální kurzovní lístek, není nic snažšího než si přečíst tento článek.

K získání kurzovního lístku použijeme textový výpis České národní banky. Kurzovní lístek stáhneme dvakrát. Jednou za dnešní datum, podruhé za včerejší. Porovnáme rozdíl kurzů a pak jej přehledně vypíšeme do tabulky. Abychom tuto akci neprováděli zbytečně po každém obnovení stránky, tak si data kešujeme do souboru.

class Kurzy
{
 var $kesLimit = 3600; // 1 hodina

function Kurzy()
{
 echo $this->spust();
}


function spust()
{
  $this->kesovat();
}

function ziskejKurz($url)
{

$soubor = file($url);
$i = 0;
$kurzPole = array();
foreach ($soubor as $row)
{
 $i++;
 if ($i > 2)
 {  
   $row = trim($row);
   list($zeme, $mena, $mnozstvi, $kod, $kurz) = explode("|", $row);
   $kurzPole[$zeme] = array($zeme, $mena, $mnozstvi, $kod, $kurz);
 }
}

  return $kurzPole;
}




function porovnejData()
{

  $dnesniDatum = date("d.m.Y");
  $vcerejsiDatum = date("d.m.Y", mktime (0,0,0, date("m"), date("d") - 3,date("Y")));

  
  $dnes  = $this->ziskejKurz("http://www.cnb.cz/www.cnb.cz/cz/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt?date=$dnesniDatum");
  $vcera  = $this->ziskejKurz("http://www.cnb.cz/www.cnb.cz/cz/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt?date=$vcerejsiDatum");


  $finalData = array();
  foreach ($dnes as $zeme => $pole)
  {
    // nastaveni sipky 
    if ($dnes[$zeme][4] > $vcera[$zeme][4])
      $ico = "<img src='up.gif' />";
    elseif  ($dnes[$zeme][4] < $vcera[$zeme][4])
      $ico = "<img src='down.gif' />";
    else
       $ico = "";
      
    // vypocet ceny a pretypovani   
      $cenaDnes =  (double)str_replace(",", ".", $dnes[$zeme][4]);
      $cenaVcera =  (double)str_replace(",", ".", $vcera[$zeme][4]);
     
      $rozdil = $cenaDnes - $cenaVcera;
  
  
     
     //země|měna|množství|kód|kurz
     // finalni ulozeni rozdilovych dat
     $finalData[$dnes[$zeme][0]] = array(
                        "zeme" => $dnes[$zeme][0],
                        "mena" => $dnes[$zeme][1],
                        "mnozstvi" => $dnes[$zeme][2],
                        "kod" =>  $dnes[$zeme][3],
                        "kurz" => $dnes[$zeme][4],
                        "sipka" => $ico,
                        "rozdil" => $rozdil
                       );
}
   return $finalData;
}

function vykreslitTabulku()
{
  $table  = "<table border='1'>";
  $table .= "<tr>
            <th>Země</th>
            <th>Měna</th>
            <th>Množství</th>
            <th>Kód</th>
            <th>Kurz</th>
            <th>Ico</th>
            <th>Rozdíl</th>
            </tr>
           ";
  
     
  foreach ($pole = $this->porovnejData() as $klic => $index)
  {

    $table .= "<tr>
              <td>".$pole[$klic]["zeme"]."</td>
              <td>".$pole[$klic]["mena"]."</td>
              <td>".$pole[$klic]["mnozstvi"]."</td>
              <td>".$pole[$klic]["kod"]."</td>
              <td>".$pole[$klic]["kurz"]."</td>
              <td>".$pole[$klic]["sipka"]."</td>
              <td>".$pole[$klic]["rozdil"]."</td>
              </tr>
             ";
  }         
  $table .= "</table>";
  
  return $table;
}

  
 function kesovat()
 {
   if (!is_file("kurzovni-listek.html") or fileMtime("kurzovni-listek.html") < (time() - $this->kesLimit))
   {
     $file = fopen("kurzovni-listek.html", "w+");
     fwrite($file, $this->vykreslitTabulku());
     fclose($file);
     
     readfile("kurzovni-listek.html");
     
   }
   else
   { 

     readfile("kurzovni-listek.html");
   }
 } 

Mno a třídu použijeme takto

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Kurzovní lístek</title>
  </head>
  <body>

<?php
  include("kurzy.php");
  echo '<h2>Kurzovní lístek</h2>';
  $k = new Kurzy();
?>
  </body>
</html>

Na ukázku výpisu kurzovního listku se můžete podívat zde

Soubor ke stažení (kurzovni-listek.zip)

Hodnocení: Počet hlasů: 14

Komentáře

kuba [1] -reagovat- 29.03. 17:35 90.183.222.---

ahoj, jak prosímte udělám z toho tvého scriptu aby se mi vypsaly jen některé měny? dík

Roman Janko [2] -reagovat- 31.03. 20:25 78.102.107.---

[1] kuba Snadno, staci si nadefinovat pole men ktere chces zobrazit, a potom to zohlednit v metode ktera bud data ziskava ( ziskas jen ty ktere chces ) nebo ktera je vykresluje …

kuba [3] -reagovat- 01.04. 18:57 90.183.222.---

[2] Roman Jankojo dík, už jsem to vyřešil, sice ne přes pole, ale trošku kostrbatě přes číslo řádku měny

RJ [4] -reagovat- 02.04. 19:30 78.102.107.---

[3] kuba To bych nedelal, kdyby zmenili treba razeni men a napr. EURO by se z radku 5 presunulo na radek 8 tak by ti to nevyslo .. zkus to pres to pole, bude to univerzalnejsi

Milan [5] -reagovat- 04.06. 17:52 147.32.122.---

Ahoj taky jsem si s timhle hral, sipecky teda neumi ale za to si myslim ze ma hodne veci navic :)
http://addons.nette.org/cs/cnb funguje i bez Nette frameworku

RJ [6] -reagovat- 05.06. 20:31 78.102.194.---

[5] Milan Tak to rozhodne, je to napsane mnohem lepe a ma to mnohem vice funkcionality :), ten muj skript byla rychlovka na 20 min a je to stare 1,5 roku , podle toho to taky vypada :)

U tveho bude mit mozna zacatecnik trosku problem se v tom zorientovat, je k tomu pribaleno moc trid … jinak je to pekne co jsem koukal.

Přidat komentář

Nový vzkaz

© 2005 - 2008 RJWEBDESIGN, všechna práva vyhrazena.
Nabízíme: Tvorba www stránek
Kontakt: telefony +420 777 856 657 | E-mail: admin@rjwebdesign.net
Spolupracujeme: Aria Studio, MXART Partnerské weby: Pesonline.cz, EuroFotbal.cz, SpanelskyFotbal.cz

© 2008 RJWEBDESIGN