milan napsal(a): > nejak se v tom placam, potrebuju dat do php stranek aktualni kurz CNB, > nasel jsem si, kde je ulozen v txt podobe, ale nejak ho nemuzu > zformatovat a vypsat kam mam, zatim jsem spachal toto: > <? $fd = fopen ("http://wdb.cnb.cz/CNB_TXT/KURZY.K_CURRTXT", "r"); > while (!feof ($fd)) { > $buffer = fgets($fd, 4096); > echo $buffer; > } > fclose ($fd); ?> > to sice nacte ten kurzovni listek a nacpe ho do "mych" stranek, ale > absolutne nezformatovany a ja bych z toho potreboval udìlat klasickou > html tabulku, mozna by nebylo spatny vypsat jen nektery radky /vynechat > jeny a jiny asijsky platidla /, googloval jsem a experimentoval, ale > nejak se mi proste nedari, nebo kdyby jste vedeli o nejakem jinem > zpusobu jak to provest uvitam vschno :) predem dik --------------------------------------------------------- tohle jsem resil nekdy pred rokem, jen s tim rozdilem, ze se to zpracuje jednou denne a ulozi do DB, odkud se to dalsich 24 hodin vypisuje. kdyz si to upravis (cti odstranis sql a misto nej das html) tak dostanes presne to co chces (mozna ;) ) snad se to nikde blbe nezalomi ;) <?php $fd = fopen ("http://wdb.cnb.cz/CNB_TXT/KURZY.K_CURRTXT", "r"); /* zpracujeme data do vysledneho pole s formatem: ( [1] => Array ( [0] => zeme [1] => mena [2] => mnozstvi [3] => kod [4] => kurz ) ... data ... */ $i = 0; while (FALSE == @feof ($fd)) { $buffer = @fgets($fd, 4096); if (TRUE == $buffer) { $data[$i] = explode("|", $buffer); } $i++; } fclose ($fd); // konec zpracovani dat /* z formatu *** [0] => Array ( [0] => 17.12.2004 #245 ) *** ziskame aktualni datum vydani kurzovniho listku */ $datum = explode("#", $data[0][0]); $tmp_datum = explode(".", $datum[0]); // datum ve formatu yyyy-mm-dd $for_unix_date = trim($tmp_datum[2]) .'-'. trim($tmp_datum[1]) .'-'. trim($tmp_datum[0]); // odstraneni prvni (datum) a druhe (nazev sloupcu) polozky unset($data[0]); unset($data[1]); //zpracovavane zaznamy $current_record = array('EUR','JPY','SKK','USD','GBP',); // priprava dotazu UPDATE na tabulku s menami // zaciname az od cisla 2 $result = true; $i = 2; while (TRUE == is_array($data[$i])) { // zapiseme jen ty polozky, ktere jsou v poli $current_record if (TRUE == in_array($data[$i][3], $current_record)) { $sql = ' UPDATE `kurzy_men` SET `write` = NOW(), `datum` = UNIX_TIMESTAMP(\''. $for_unix_date .'\'), `zeme` = \''. addslashes(trim($data[$i][0])) .'\', `mena` = \''. addslashes(trim($data[$i][1])) .'\', `mnozstvi` = \''. addslashes(trim($data[$i][2])) .'\', `kod` = \''. addslashes(trim($data[$i][3])) .'\', `kurz` = \''. addslashes(trim($data[$i][4])) .'\' WHERE `kod` = \''. addslashes(trim($data[$i][3])) .'\' LIMIT 1'; $query = ''// ulozeni do db; } $i++; } // end: while ?> enjoy ;) -h!-Received on Tue, 23 Aug 2005 16:10:10 +0200
This archive was generated by hypermail 2.1.8 : 23. 08. 2005, 16:12 CEST