Данные скрипты загружает курсы валют с сайта ЦентроБанка на текущую дату, в выходные курс не обновляется.
$usd = $eur = 0;
$xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req=' . date('d/m/Y'));
if (!empty($xml)) {
foreach ($xml->Valute as $item) {
if ($item['ID'] == 'R01235') {
$usd = $item->Value;
} elseif ($item['ID'] == 'R01239') {
$eur = $item->Value;
}
}
if (!empty($usd) && !empty($eur)) {
$usd = str_replace(',', '.', $usd);
$eur = str_replace(',', '.', $eur);
}
}
echo $usd;
echo $eur;
Вычисление кросс-курсов валют USD/EUR и EUR/USD:
Обращение к фиду лучше ограничить т.к. из-за частых запросов могут заблокировать на сутки. Скрипт можно запускать по крону или случайным образом сохраняя данные в БД.
if (mt_rand(1, 20) == 1) {
$usd = $eur = 0;
$xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req=' . date('d/m/Y'));
if (!empty($xml)) {
foreach ($xml->Valute as $item) {
if ($item['ID'] == 'R01235') {
$usd = $item->Value;
} elseif ($item['ID'] == 'R01239') {
$eur = $item->Value;
}
}
if (!empty($usd) && !empty($eur)) {
$usd = str_replace(',', '.', $usd);
$eur = str_replace(',', '.', $eur);
}
$dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль');
$sth = $dbh->prepare("UPDATE `usd_eur` SET `usd` = :usd, `eur` = :eur WHERE `id` = 1");
$sth->execute(array('usd' => $usd, 'eur' => $eur));
}
}
$uah = 0;
$xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req=' . date('d/m/Y'));
if (!empty($xml)) {
foreach ($xml->Valute as $item) {
if ($item['ID'] == 'R01720') {
$uah = $item->Value;
}
}
if (!empty($uah)) {
$uah = str_replace(',', '.', $uah);
}
}
echo $uah;