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

Обновлено: 05.07.2024

В последнее время технические ресурсы Банка России работают ненадежно. Усложнено получение данных о текущих курсах валют: от разработчиков требуют ставить специальные заголовки, данные не загружаются с первого раза. В следствие чего старые скрипты перестали работать.

Осложнение объясняют ведущейся на сервис DDoS атакой, но ведь нам от этого не легче.

Выход есть!

Достаточно заменить старые ссылки на сервисы ЦБ РФ на ссылки на нашем ресурсе, и получать все те же самые данные без какой-либо переделки старых скриптов.

Если вы использовали такую ссылку для получения котировок на сегодня:

То вам подойдет любая из двух ниже, в зависимости от того, нужна ли вам перекодировка в UTF-8 или устроит исходная 1251:

Если вы использовали английскую версию:

То на замену вам подойдую любые из этих, с кодировкой 1251 или в UTF-8:

Кроме файлов с курсами в формате XML на нашем ресурсе вы можете получить курсы валют в формате JSON и курсы ЦБ РФ в формате JSONP:

Для вашего удобства в последних есть курсы на сегодняшнюю и прошлую даты. Как использовать эти курсы.

Кроме того, доступны текущие курсы в формате, совместимом с библиотекой money.js и многими другими:

Вот и всё!

Время, которое вы бы потратили на переписывание и обновление старых приложений, теперь вы можете использовать и для более приятных занятий.

Timeweb

Этот проект был бы невозможен без выделенного сервера Xeon E5 Dual от Timeweb. Сервера для любых нагрузок — от Timeweb.

Как показать текущие курсы валют на сайте?

Нет ничего проще! Добавьте такой код где нужно показать курсы:

И такой код в начале страницы в теге :

Курс валют ЦБ РФ для сайта на PHP

Эта функция выгружает данные курсов и сохраняет их в статической переменной внутри функции, таким образом что при повторном вызове этой функции обращения к API не будет.

Как получить последние курсы со стороны сервера?

Добавьте такой код в /etc/cron.hourly/cbr:

Затем дайте права на выполнение:

И сделайте первую загрузку:

Эта программа будет поддерживать самую актуальную версию данных о курсах валют во всех форматах в каталоге /var/cache/cbr/

Использовать их можно, например, так:

Да, вот так просто! Работает и оффлайн.

Условия использования

Раз, не более 5 запросов в секунду, 120 запросов в минуту с одного IP и не более 10000 запросов в сутки, пожалуйста. Если вам надо больше, то вы что-то делаете не так. Попробуйте использовать кеш данных курсов валют.

Два, разместите обратную ссылку на проект в одном из следующих форматов:

Администрация сайта оставляет за собой право закрыть доступ для IP и сайтов, нарушающих условия использования.

Понравилось? Помогло? Сберегло время?

Помогите с оплатой услуг CDN для проекта. Услуги CDN стоят примерно 1200 рублей в месяц.

Спонсоры сайта имеют возможность обратиться к администрации сайта с вопросами и предложениями.

Подскажите, пожалуйста, как поставить на сайт информацию ЦБ Армении - курсы валют?


2 ответа 2

Дальше, надеюсь, справитесь сами, потому что я не знаю Вашего проекта и Ваших конкретных целей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками html или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2022 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2022.1.27.41279

PHP-скрипт для загрузки курсов валют

Многие из Вас неоднократно видели, что на некоторых сайтах выводятся курсы валют. Разумеется, администраторы этих сайтов сами ежедневно их не меняют (надеюсь). Они их подгружают с сайта ЦентроБанка. И в этой статье я дам код PHP-скрипта для загрузки курсов валют с сайта ЦентроБанка и вывода их на страницу.

Привожу сразу код скрипта:

loadXML($content); // Загружаем в DOM XML-документ
$root = $dom->documentElement; // Берём корневой элемент
$childs = $root->childNodes; // Получаем список дочерних элементов
$data = array(); // Набор данных
for ($i = 0; $i length; $i++) $childs_new = $childs->item($i)->childNodes; // Берём дочерние узлы
for ($j = 0; $j length; $j++) /* Ищем интересующие нас валюты */
$el = $childs_new->item($j);
$code = $el->nodeValue;
if (($code == "USD") || ($code == "EUR")) $data[] = $childs_new; // Добавляем необходимые валюты в массив
>
>
/* Перебор массива с данными о валютах */
for ($i = 0; $i length; $j++) $el = $list->item($j);
/* Выводим курсы валют */
if ($el->nodeName == "Name") echo $el->nodeValue." - ";
elseif ($el->nodeName == "Value") echo $el->nodeValue." рублей
";
>
>
?>

Я постарался код тщательно прокомментировать, поэтому с его пониманием проблем возникнуть не должно. Так же, чтобы понять, почему столько и почему именно такие циклы, а также откуда берутся определённые условия, я настоятельно рекомендую зайти по ссылке из кода (только дату подставьте). Тогда Вы увидите XML-документ, и Вам уже будет гораздо проще понять, почему именно такой код был написан.

Вот так легко можно загрузить курсы различных валют мира с использованием PHP.


Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

Комментарии ( 12 ):

михаил,можно ли оставить етот файл в дерриктории сайта,и извлеч из него переменные в document.write для всех страниц сайта?потому-что зто не совсем постой код.

Можно, только этот файл надо будет подключать через require_once, а после выводить полученные переменные из него через PHP.

А как сделать показ курса валют в одну строку?

А возможно ли откорректировать скрипт.. Т.е выводить курс по отношению не к рублю, а к евро. Что бы выводилось примерно так: Доллар США= хх евро а в идеале так: 1 евро= xx Долларов США и соответственно так же с еще парой валют. С самим рублем например и Украинской гривной. Ну тут уже по аналогии. Вообще возможно ли такое решение

Денис, ничего не реального в этом не вижу.

Скажите пожалуйста почему этот скрипт работает на локалке а при переносе сайта на хостинг скрипт не работает. использую MODX

Спасибо! все работает :)

В связи с последним значительным ростом американского доллара и европейской валюты по отношению к российскому рублю, валютные курсы притягивают к себе повышенное внимание. Многие ежедневно следят за изменениями курса. Некоторые вынуждены это делать из-за специфики своей работы. В любом случае — курсы Центрального Банка интересны людям. Чтобы своевременно узнать обо изменениях, произошедших с валютами, нефтью и другими финансовыми инструментам, можно воспользоваться специальными виджетами.

Мы уже рассматривали виджеты фаз луны, газетные и виджеты города Санкт-Петербург, а сегодня рассмотрим виджет курсов ЦБ РФ, который также можно закрепить на стартовой странице поисковой системы Яндекс.

Виджет курсов валют ЦБ РФ

Внешний вид виджета курсов валют ЦБ России выглядит на главной Яндекса так:

widget-yandex-kurs-valut

Изначально он отображает курс USD и EUR от ЦБ РФ, а также курсы этих валют от ММВБ (Московская Международная Валютная Биржа) и стоимость барреля нефти.

Чтобы добавить виджет курсов ЦБ РФ к себе на стартовую страницу Яндекса, вам необходимо сначала войти в почтовый ящик, чтобы виджет сохранился. Затем, добавить его, щёлкнув на ссылку:

или воспользоваться альтернативным способом — щёлкнуть на этот виджет из каталога виджетов: ссылка на каталог с курсами ЦБ.

Как добавить другие валюты?

В этом виджете возможно настроить отображение курсов не только доллара и евро, но и других валют. Для этого, после того как вы установили виджет на главной Яндекса, необходимо щёлкнуть на него, чтобы появились три небольшие кнопки справа вверху от самого виджета. Можно также не щёлкать, а просто подвести указатель мышки и кнопки появятся сами:

nastroyki-vidgeta

Далее, нажимаем на кнопку с изображением шестерёнки — так откроются настройки виджета курсов ЦБ:

vibor-valyut

В настоящее время этот виджет может отображать курсы таки валют:

Выбор нужных валют для отображения можно сделать щёлкая мышкой на их названии.

Дополнительные инструменты виджета курса ЦБ

Кроме валютных курсов, виджет может отображать также стоимость нефти, кросс-курсы, биржевые индексы, котировки акций, цены на сырьё а также цены на бензин. Инструментов очень много и вы сможете найти тот, который нужен именно вам. Успехов!


В этой статье вы прочтёте о том, как сделать вывод курс валют на ваш сайт с использованием языка программирования PHP.

Также сделаем конвертер валют и в конце вы сможете скачать файлы из этой статье.

Получение курса валют на PHP:

Перед тем как конвертировать валюты, нужно их получить, для этого нужно зайти на сайт центра банка по этой ссылки, там выбираем ссылку формата которого вам надо получать данные, я же буду показывать для формата JSON.

По сути мы просто будем отправлять GET запрос и получать в качестве ответа JSON данные, которые надо будет переделать в обычный PHP массив.

Давайте кратко разберём этот код, сначала объявляем переменную, в которой хранится URL куда отправлять запрос, потом создаём его настраиваем и отправляем с помощью curl_exec($ch) и получаем ответ, одновременное с этим его декодируем в обычный массив благодаря json_decode() , закрываем запрос.

Теперь проверим какие данные хранятся в полученном массиве, вот как это делается.

Массив курсов валют

Как видите мы теперь имеем массив, наверное со всеми валютами мира, и их ценами, также нам приходят данные о времени и откуда взяты данные.

Но нам нужно получить стоимость доллара, для этого, используем этот код.

Как видите мы просто берём из трёхмерного массива данные стоимости и сохраняем в переменную $USD , и выводим её на экран.

Вот результат работы программы.

Один доллар в рублях

Примерно так и получаем курс доллара в PHP, но таким же способом можно получать и другие валюты, вам просто нужно их найти в этом массиве и всё.

Конвертер валют на PHP:

Теперь сделаем простой конвертер валют, а точнее доллара на PHP, но точно таким же способом вы сможете сделать конвертер для любой валюты.

Для этого сделаем не большую HTML форму, куда будем вводить количество долларов и потом при отправки, будет вычисляться сколько это рублей.

Читайте также: