Получение котировок PHP

Данные скрипты загружает курсы валют с сайта ЦентроБанка на текущую дату, в выходные курс не обновляется.

$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;
PHP

Вычисление кросс-курсов валют USD/EUR и EUR/USD:

$usd_eur = $usd / $eur;
$eur_usd = $eur / $usd;
PHP

Обращение к фиду лучше ограничить т.к. из-за частых запросов могут заблокировать на сутки. Скрипт можно запускать по крону или случайным образом сохраняя данные в БД.

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));
	}
}
PHP
$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;
PHP
$byn = 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'] == 'R01090B') {
			$byn = $item->Value;
		}
	}
 
	if (!empty($byn)) {
		$byn = str_replace(',', '.', $byn);
	}
}
 
echo $byn;
PHP
$gbr = 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'] == 'R01035') {
			$gbr = $item->Value;
		}
	}

	if (!empty($gbr)) {
		$gbr = str_replace(',', '.', $gbr);
	}
}

echo $gbr;
PHP
08.10.2016, обновлено 07.11.2020
5253
Предыдущая запись Бот Телеграм на PHP
Следующая запись Сумма прописью PHP

Комментарии

, чтобы добавить комментарий.

Другие публикации

Получить фото из Instagram без API
Так как Instagram и Fasebook ограничили доступ к API, а фото с открытого аккаунта всё же нужно периодически получать и...
19456
+6
Обновление таблицы БД из XML файлов
Два примера чтения xml файлов, которые обновляют цены и остатки в базе данных интернет магазина.
4976
+3
Генерация случайных буквенно-цифровых кодов в PHP
Несколько примеров, как сгенерировать случайные последовательности численных и буквенных строк заданной длины и...
5149
+3
Постраничный вывод и базы данных
В SQL запросах, для ограничения количества строк в результате используется инструкция LIMIT, например следующий вернёт...
5360
+2
Поиск похожих статей на PHP + MySQL
Один из вариантов поиска похожих статей в базе данных основан на схождении слов в двух текстах.
2865
+2
Обработка и вывод рейтинга в PHP
В продолжении статьи о верстки рейтинга, рассмотрим PHP-скрипты системы отзывов и рейтинга в интернет-магазине.
10915
+2