$currency_count = 0;
$currency_data = array();
$xml_current_tag_state = '';
function startElementHandler( $parser, $element_name, $element_attribs )
{
global $currency_count;
global $currency_data;
global $xml_current_tag_state;
if( $element_name == "VALCURS" ){
$currency_data[$currency_count]["Date"] = $element_attribs["DATE"];
$currency_count++;}
if( $element_name == "VALUTE" )
$currency_data[$currency_count]["ID"] = $element_attribs["ID"];
else{
$xml_current_tag_state = $element_name;
}
}
/********************************************************/
function endElementHandler( $parser, $element_name )
{
global $currency_count;
global $currency_data;
global $xml_current_tag_state;
$xml_current_tag_state = '';
if( $element_name == "VALUTE" )
$currency_count++;
}
/*======================================================*/
function characterDataHandler( $parser , $data )
{
global $currency_count;
global $currency_data;
global $xml_current_tag_state;
if( $xml_current_tag_state == '' )
return;
if( $xml_current_tag_state == "NAME" )
$currency_data[$currency_count]["name"] = $data;
if( $xml_current_tag_state == "VALUE" )
$currency_data[$currency_count]["value"] = $data;
if( $xml_current_tag_state == "CHARCODE" )
$currency_data[$currency_count]["charcode"] = $data;
if( $xml_current_tag_state == "NUMCODE" )
$currency_data[$currency_count]["numcode"] = $data;
if( $xml_current_tag_state == "NOMINAL" )
$currency_data[$currency_count]["nominal"] = $data;
}
?>
/*=====================================================================*/
$url ="http://www.bnm.md/md/official_exchange_rates?get_xml=1&date";
$cachefile="some.xml";
if(file_exists($cachefile)) {
$date_str = getdate(fileatime($cachefile));
$year = $date_str["year"];
$mon = $date_str["mon"];
$mday = $date_str["mday"];
$hours = $date_str["hours"];
$minutes = $date_str["minutes"];
$seconds = $date_str["seconds"];
}
else echo "File doesn't exist";
$date_string = "$mday/$mon/$year";
$date_str = "$hours:$minutes:$seconds $mday/$mon/$year";
$c=date("G:i:s j/n/Y");
$cd=date("j/n/Y");
if($date_string!=$cd||(filesize($cachefile)<6000)){
$xml = file_get_contents($url);
if(!($fp=fopen($cachefile, "w"))) die("Could not open file to read ");
fwrite($fp, $xml); //write contents of feed to cache file
fclose($fp);
}
/*=====================================================================*/
if( ! ($fp = fopen( $cachefile , "r" )) )
echo "Couldn't open xml file!";
if( !($xml_parser = xml_parser_create()) )die("Couldn't create XML parser!");
xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler($xml_parser, "characterDataHandler");
while( $data = fread($fp, 4096) )
{
if( !xml_parse($xml_parser, $data, feof($fp)) ){
break;
}
}
xml_parser_free($xml_parser);
$today = date("d.m.Y");
if( ($fp = fopen( $cachefile , "r" )) )
if($today!=$currency_data[0]["Date"]) echo "!????????, ???? ????? ?? ????????????? ??????? ???? $today!=".$currency_data[0]["Date"];
for( $i=1 ; $i <$currency_count; $i++ )
{
if($currency_data[$i]["charcode"]=="USD") $cursul_zilei["USD"]=$currency_data[$i]["value"];
if($currency_data[$i]["charcode"]=="RON") $cursul_zilei["RON"]=$currency_data[$i]["value"];
if($currency_data[$i]["charcode"]=="EUR") $cursul_zilei["EUR"]=$currency_data[$i]["value"];
if($currency_data[$i]["charcode"]=="RUB") $cursul_zilei["RUB"]=$currency_data[$i]["value"];
}
$data_xml=$currency_data[0]["Date"];
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
?>
function output_course($cursul_zilei,$date){
?>
echo $date;?>
Code |
Rate |
Exchange |
USD |
1 |
echo $cursul_zilei["USD"]; ?> |
EUR |
1 |
echo $cursul_zilei["EUR"]; ?> |
RON |
1 |
echo $cursul_zilei["RON"]; ?> |
RUB |
1 |
echo $cursul_zilei["RUB"]; ?> |
|
}
function ok(){
global $cursul_zilei;
global $data_xml;
?>
 |
Cursul valutar al BNM |
 |
|
|
 |
 |
output_course($cursul_zilei,$data_xml);?> |
|
 |
 |
}?>