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



Здравствуйте дорогие друзья! В этом уроке я покажу, как можно получить и вывести на сайт текущие курсы валют.

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

Итак, выводить мы будет курс доллара и курс евро на сегодня. Для того, чтобы эти самые курсы вывести на сайте, их необходимо откуда-то получить — логично.

Источником данных станет проверенный мной сервис, а именно 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, поэтому в следующем уроке я приведу пример кода, с помощью которого можно будет, во-первых, кэшировать данные, и во-вторых можно будет задать частоту запроса, например, сделав так, чтобы курсы валют обновлялись каждый час.

На этом все, до новых статей, удачи!

Комментарий (2)

  • Александр| 3 сентября 2015

    Спасибо Вам за полезную статью, то что было нужно!

  • Оставить ответ

    Ваш e-mail не будет опубликован. Обязательные поля помечены *