Tuesday, August 3, 2010

Curs Valutar BNR

PHP Code:
 
 
 
 
 
// Curs Valutar BNR 
// -> (denumire, cod international, valoare in lei vechi, valoare in lei noi, 
// semn crestere / scadere valoare, variatia fata de ziua precedenta - in procente). 
// Autor:(c)MITZU 
// Scriptul poate fii utilizat fara permisiunea autorului. :D
$fila = fopen("http://www.bnro.ro/Ro/Info/curs_ext.asp","rb");  $pagina = ''; 
while (!
feof($fila)) 
{  
$pagina .= fread($fila, 4096); 
}  
fclose($fila); 
$tmp_ = explode('- lei vechi -', $pagina);  $tmp_ = explode('- lei noi -', $tmp_[1]);  $semn = ''
;  $val = strip_tags(str_replace(' class="bold"', '', $tmp_[0]), $semn);  $val = str_replace('
', '', explode('', $val)); array_shift($val); array_pop($val); 
for(
$i=0; $i < count($val); $i++) 
{  
$val[$i] = str_replace('', '', explode('', $val[$i]));  $n[$i] = trim($val[$i][1]); 
$val[$i][5] = str_replace(' ', '.', $val[$i][5]);  $val[$i][6] = str_replace(' ', '.', $val[$i][6]); 

if((
$val[$i][6] - $val[$i][5]) > 0 ) $semn = '+'; 
if((
$val[$i][6] - $val[$i][5]) < 0) $semn = '-'; 
if((
$val[$i][6] - $val[$i][5]) == 0) $semn = ''; 
$val[$i]['cod'] = $n[$i];  $val[$i]['nume'] = $val[$i][0];  $val[$i]['val'] = $val[$i][6];  $val[$i]['var'] = ($val[$i][5] - $val[$i][6]) / $val[$i][6]*100; 
$val[$i]['var'] = $semn.''.substr(abs($val[$i]['var']), 0, 5).'%'; 
////////// $val[$i]['l_nou'] = Valoarea in LEI NOI. 
$val[$i]['l_nou'] = str_replace('.', '', $val[$i]['val']) / 10000; 
if(
$n[$i]=='100JPY') 
{  
$n[$i]='JPY'; $val[$i]['nume'] = 'Yen Japonez'; $val[$i]['cod'] = 'JPY'; $val[$i]['val'] = substr($val[$i]['val'] / 100, 0, 5); $val[$i]['l_nou']= substr($val[$i]['l_nou'] / 100, 0, 5); 
}  
$val[$i]['l_nou'] = substr((str_replace('.', ',', $val[$i]['l_nou'])), 0, 5); 
};  
/* pentru serverele PHP 4.x urmatorul loop echivaleaza functia array_combine() din PHP 5.x */  for ($k = 0, $nr = array_values($n), $vall = array_values($val), $cnt = sizeOf($nr); $k < $cnt; $k++)  $valuta[$nr[$k]] = $vall[$k]; // $valuta - variabila pentru tabele personalizate. 
/* daca exista server PHP 5.x in locul expresiei de mai sus se poate folosi $valuta = array_combine($n, $val); 
---------- EXEMPLE : 
1. Personalizat - Valutele se pot plasa in orice ordine 
- $valuta['USD']['val'] = valoarea valutei pentru ziua in curs. 
- $valuta['USD']['cod'] = codul International al valutei. 
- $valuta['USD']['nume']= numele valutei. 
- $valuta['USD']['var']= variatia valutei fata de ziua precedenta - (diferenta in procente) 
*/  
echo ''; 
echo 
'Denumire Valuta Cod Valuta Valoare - Lei VechiValoare - Lei NoiVariatia fata de ziua precedenta'; 
echo 
''.$valuta['JPY']['nume'].''.$valuta['JPY']['cod'].''.$valuta['JPY']['val'].''.$valuta['JPY']['l_nou'].''.$valuta['JPY']['var'].''; 
echo 
''.$valuta['EUR']['nume'].''.$valuta['EUR']['cod'].''.$valuta['EUR']['val'].''.$valuta['EUR']['l_nou'].''.$valuta['EUR']['var'].''; 
echo 
'';  /* 
2. Simplu - Toate Valutele afisate in pagina BNR afisate in ordinea din pagina de referinta. 
*/  
echo ''; 
echo 
'Denumire  COD Lei VechiLei NoiVariatia'; 
for(
$i=0; $i<count($val); $i++) 
{ 
echo 
''.$val[$i]['nume'].''.$val[$i]['cod'].''.$val[$i]['val'].''.$val[$i]['l_nou'].''.$val[$i]['var'].''; 
} 
echo 
'';  ?> 
  

No comments:

Post a Comment