Как вывести курсы валют на сайте


Здравствуйте дорогие друзья! В этом уроке я покажу, как можно получить и вывести на сайт текущие курсы валют. Как вывести курсы валют на сайте Итак, выводить мы будет курс доллара и курс евро на сегодня. Для того, чтобы эти самые курсы вывести на сайте, их необходимо откуда-то получить - логично. Источником данных станет проверенный мной сервис, а именно Yahoo API. В свое время, когда мне необходимо было выводить курсы валют на одном из сайтов, одна из основных проблем была связана с отсутствием стабильного источника курсов валют - пришлось перепробовать множество сервисов, которые, бывало, переставали работать, либо просто-напросто отдавали неверные данные. Давайте рассмотрим простенький код:

	$json_kurs = file_get_contents('https://query.yahooapis.com/v1/public/yql?q=select+*+from+yahoo.finance.xchange+where+pair+=+%22USDRUB,EURRUB%22&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=');
	$json_kurs = json_decode($json_kurs, true);
	$usd = $json_kurs['query']['results']['rate']['0']['Rate'];
	$euro = $json_kurs['query']['results']['rate']['1']['Rate'];
	
	echo '<div id="kurs_valut">Доллар: '.$usd.'  Евро: '.$euro.'.</div>';

Что делает этот код:

  • С помощью функции file_get_contents получаем необходимые данные в формате json
  • Функция json_decode преобразует json код в многомерный массив.
  • В переменные usd и euro, обращаясь к массиву, помещаем курсы доллара и евро соответственно.
  • Выводим курсы валют.
Вот таким несложным способом можно получить и вывести необходимые данные. У многих должен возникнуть вопрос, касающийся слишком частого обращения к Yahoo, поэтому в следующем уроке я приведу пример кода, с помощью которого можно будет, во-первых, кэшировать данные, и во-вторых можно будет задать частоту запроса, например, сделав так, чтобы курсы валют обновлялись каждый час. На этом все, до новых статей, удачи!


Раздел: Программирование

Дата последнего изменения: 2015-07-12 18:09:11

Просмотров: 11436

Оставить комментарий

* Комментарий: (отменить ответ)

* Ваше имя:

Ваш e-mail:

*