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($infoNULL);

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