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

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

1

USD/EUR

$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
2

Украинская гривна (UAH)

$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
3

Белорусский рубль (BYN)

$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
4

Фунт стерлингов Соединенного королевства (GBP)

$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, обновлено 10.09.2019 1234
Предыдущая запись Работа с API Instagram
Следующая запись Сумма прописью PHP

Поделится

Темы

XML Цены

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

В продолжении статьи о верстки рейтинга, рассмотрим PHP-скрипты системы отзывов и рейтинга в интернет-магазине.
PHP функции для исправление неправильной раскладки клавиатуры в тексте и использование их в поиске по сайту.
Класс значительно упрощает работу с PDO, сокращает код. Реализован на статических классах и не требует создание...
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
В данном примере описано как вывести многоуровневый список checkbox и radio button из БД с помощью PHP функций...
В MySQL есть несколько встроенных функций шифрования. Рассмотрим основные на примерах c использованием PHP PDO.