
Podgląd pliku: / jacekk.info / nbp5.phps
<?php /************************************************** * Kursy walut * ************************************************** * Wersja: 4.1 (SimpleXML) * * Autor: Jacek Kowalski (http://jacekk.info) * * * * Strona WWW: http://jacekk.info/scripts/kursy * * * * Utwór rozprowadzany na licencji * * http://creativecommons.org/licenses/by-nc/2.5/ * **************************************************/ /* Kodowanie znaków: UTF-8 */ function convert($text) { // Zmień na żądane kodowanie znaków - puste pozostawia UTF-8 $charset = ''; if($charset && function_exists('iconv')) { return iconv('utf-8', $charset, $text); } elseif($charset && function_exists('recode_string')) { return recode_string('utf8...'.$charset, $text); } else { return $text; } } // Ścieżka do cache'a $cache = dirname(__FILE__).'/kursy_cache.txt'; // Dane aktualne? $recent = TRUE; // Sprawdzenie możliwości zapisania kursów if( ( !file_exists($cache) AND !is_writable(dirname($cache)) ) OR ( file_exists($cache) AND !(is_writable($cache)) ) ) { $cache = ''; } else { // Dane są aktualne? if(@filemtime($cache)<strtotime('yesterday 12:15')) { $recent = FALSE; } elseif(time()>strtotime('12:15') && @filemtime($cache)<strtotime('12:15')) { $recent = FALSE; } } // Nie istnieje możliwość zapisania kursów lub dane są nieaktualne if($cache == '' OR !$recent) { // Link do arkusza XML $link = file_get_contents('http://www.nbp.pl/kursy/kursya.html'); if($link == FALSE) { die('<p>Nie udało się pobrać kursów walut</p>'); } $link = '/kursy/'.substr(strstr($link, 'xml/'), '0', '19'); // Pobieranie arkusza XML $info = file_get_contents('http://www.nbp.pl/'.$link); if($info == FALSE) { die('<p>Nie udało się pobrać kursów walut</p>'); } // Można zapisać do cache'a if($cache != '') { // Zapamiętujemy arkusz file_put_contents($cache, $info); } } else { // Ładujemy zapisane dane $info = file_get_contents($cache); } // Parsowanie pliku XML $info = simplexml_load_string($info, NULL); foreach($info->pozycja as $v) { $waluta[((string)$v->kod_waluty)] = array( 'name' => convert((string)$v->nazwa_waluty), 'ilosc' => (string)$v->przelicznik, 'kurs' => (string)$v->kurs_sredni, ); } echo $waluta['USD']['ilosc'].' USD: '.$waluta['USD']['kurs'].'<br /> '.$waluta['EUR']['ilosc'].' EUR: '.$waluta['EUR']['kurs']; ?> <hr /> Kursy by <a href="http://jacekk.info" target="_blank">Jacek Kowalski</a>
Browse Code © 2010 by Jacek Kowalski