The reference rates are usually updated by 3 p.m. C.E.T. They are based on a regular daily concertation procedure between central banks across Europe and worldwide, which normally takes place at 2.15 p.m. CET.
How to parse the data
Regular expression example
<?php
//This is a PHP(4/5) script example on how eurofxref-daily.xml can be parsed
//Read eurofxref-daily.xml file in memory
//For this command you will need the config option allow_url_fopen=On (default)
$XMLContent=file("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
//the file is updated daily between 2.15 p.m. and 3.00 p.m. CET
foreach($XMLContent as $line){
if(preg_match("/currency='([[:alpha:]]+)'/",$line,$currencyCode)){
if(preg_match("/rate='([[:graph:]]+)'/",$line,$rate)){
//Output the value of 1EUR for a currency code
echo'1€='.$rate[1].' '.$currencyCode[1].'<br/>';
//--------------------------------------------------
//Here you can add your code for inserting
//$rate[1] and $currencyCode[1] into your database
//--------------------------------------------------
}
}
}
?>
XML parser example
<?php
function StartElement($parser, $name, $attrs) {
if (!empty($attrs['RATE'])) {
echo "1€=".$attrs['RATE']." ".$attrs['CURRENCY']."<br />";
}
}
$xml_parser= xml_parser_create();
xml_set_element_handler($xml_parser, "StartElement", "");
// for the following command you will need file_get_contents (PHP >= 4.3.0)
// and the config option allow_url_fopen=On (default)
xml_parse($xml_parser, file_get_contents ("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"));
xml_parser_free($xml_parser);
?>
SimpleXML example
<?php
//This is aPHP(5)script example on how eurofxref-daily.xml can be parsed
//Read eurofxref-daily.xml file in memory
//For the next command you will need the config option allow_url_fopen=On (default)
$XML=simplexml_load_file("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
//the file is updated daily between 2.15 p.m. and 3.00 p.m. CET
foreach($XML->Cube->Cube->Cube as $rate){
//Output the value of 1EUR for a currency code
echo '1€='.$rate["rate"].' '.$rate["currency"].'<br/>';
//--------------------------------------------------
//Here you can add your code for inserting
//$rate["rate"] and $rate["currency"] into your database
//--------------------------------------------------
}
?>
Output of the code above
1€=1.3857 USD
1€=111.87 JPY
1€=1.9558 BGN
1€=24.598 CZK
1€=7.4562 DKK
1€=15.6466 EEK
1€=0.86860 GBP
1€=271.76 HUF
1€=3.4528 LTL
1€=0.7097 LVL
1€=3.9820 PLN
1€=4.2663 RON
1€=9.3610 SEK
1€=1.3708 CHF
1€=8.1920 NOK
1€=7.3470 HRK
1€=42.7523 RUB
1€=1.9887 TRY
1€=1.4216 AUD
1€=2.3638 BRL
1€=1.4150 CAD
1€=9.2437 CNY
1€=10.7467 HKD
1€=12383.89 IDR
1€=61.5200 INR
1€=1557.90 KRW
1€=17.1544 MXN
1€=4.3090 MYR
1€=1.8280 NZD
1€=59.741 PHP
1€=1.7968 SGD
1€=41.509 THB
1€=9.6827 ZAR
from:http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html