Курсы валют ЦентрБанка РФ

Недавно возникла необходимость написать php скрипт, отображающий курсы валют Центрального банка Российской Федерации. Благо сайт НацБанка РФ выдаёт удобную XML с курсами, поэтому скрипт на самом деле является парсером с возможностью сравнения курсов со вчерашним днём.

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

Переменные:

$updURLURL обновления, по умолчанию http://www.cbr.ru/scripts/XML_daily.asp – XML с курсами, установленными Центральным банком РФ на текущий день.

$path – путь на сервере, куда будут сохраняться временные файлы, с которыми в последующем и будут совершаться все операции. Внимание! Папка должна иметь права доступа для записи (CHMOD 777)

$fPrefix – префикс временных файлов. Создан просто для удобства нахождения наших файлов, если, например, Вы решите сохранять файлы в папку, где кроме наших временных файлов будут и другие.

$keepHistory – Установите true, если хотите, чтобы старые (позавчера и ранее) не удалялись автоматически. По умолчанию – false.

$currArray – Массив кодов валют, которые должны отображаться на сайте. Полный список валют есть на сайте ЦБ РБ

$changes – Установите false, если Вы не хотите отображать сравнение со вчерашним днём. По умолчанию true

Функции:

Итак конструктор класса выполняет задачу по определению необходимости обновления курсов и вызову функции отображения курсов на сайте.

Функция save2file сохраняет полученные новые курсы валют в файл

Функция view отвечает за вывод на сайт курсов валют из актуального файла.

Этот скрипт бесплатный и Вы можете использовать его у себя на сайте как Вам это необходимо, но мне будет приятно, если Вы оставите в комментариях запись о том, что скрипт нашёл своё применение не только в моём проекте ;)

PHP 

Комментарии (23) »


  RSS комментариев этой записи.


Просто подписка на комментарии

  1. Великолепно, благодарю!
    Ваши усилия не были напрасны, будем использовать =)
    P.S. Я в php как свинья в апельсинах, может сделаете еще сравнение как на яндексе, типо – −0,0018 или −0,0737?
    И включите подписку на коменты.

    Comment от Дима — 01.03.2009 @ 09:47

  2. Спасибо за скрипт! Установил на сайте http://www.fin-grupp.ru, вроде работает, но не показывает картинки «up» и «down»,устранить проблему не смог, так как тоже не особо разбираюсь в php. И не получилось добавить ещё одну валюту (826-GBP), вставил значение ‘826′ в 28 строку currency.class.php, но результата никакого, может ещё чего надо, Вы уж подскажите пожалуйста.

    Comment от Алексей — 26.03.2009 @ 13:53

  3. Алексей, насчёт картинок: в строках 89, 92, 95 выставляются названия картинок (down -> курс упал, up -> вырос, freeze – не изменился), выставьте там пути к Вашим стрелкам, например, $arr['x'][$key]['change'] = ‘/images/kurs_up.gif’; Насчёт добавления новой валюты: дождитесь следующего дня или удалите из папки /currency/ файл с текущей датой (cur_2009-03-26.php) и обновите страницу.

    Дима, не проблема, думаю, что скрипт будет обновлён немного и возможность, которую Вы указали, реализую + ещё некоторые фишки. Подписку на комменты и rss добавил.

    Comment от ctepeo — 26.03.2009 @ 14:08

  4. Егор, большое спасибо за оперативный ответ!!!
    С картинками разобрался, в принципе я и пытался именно в тех строках что-то изменить, но видимо отсутствие freeze.gif, в Вашей загрузочной папке, меня и сбило с толку. Потому как данные загрузились, а сравнивать их не с чем было ещё, поэтому должно было показывать freeze.gif,т.е. никаких изменений в курсе, а его вообще нет. Вообще я не понял, почему Вы сразу там не прописали путь к картинкам или хотя бы дописали .gif к «up» и «down». С Вашего позволения выставляю папку Вашего скрипта http://www.imeasi.eu/teised/currency.rar с прописанными путями и добавленной картинкой freeze, которую сделал в виде красного круга(ничего более умного не придумал). Может кому то будет легче так разобраться. Картинки поставил другие и в формате .png(посмотреть можно там же – http://www.fin-grupp.ru).
    Добавить GBP так и не получилось. Сделал всё как Вы написали, пришёл новый файл cur_2009-03-26.php, в нём прописан GBP и его курс, но вот на сайте не отобразилось. Почему?

    Comment от Алексей — 26.03.2009 @ 17:00

  5. Алексей, согласен, тупанул с тем, что по умолчанию не появляются картинки, исправлю вместе с обновлением. С .png возникнут проблемы в ИЕ6. Версию, где у меня отобразились фунты отправил Вам на почту.

    Comment от ctepeo — 26.03.2009 @ 17:17

  6. IE6 особая тема :) . Спасибо , что напомнили, переделал в .gif , хотя мои картинки это не особо спасёт , у них прозрачный фон, значит в IE6 будут в голубеньком квадратике.
    Фунт так и не появился, да и ладно, этого пока хватит. :)
    Спасибо за помощь!!!

    Comment от Алексей — 26.03.2009 @ 17:55

  7. Фунт всё таки появился!!! :) Но вот была проблема с кодировкой на IE и Opera! Поменял на UTF-8, теперь нормально, но в Firefox иногда показывает крякозябрики вместо «руб.», но если обновить страницу то становится всё нормально. Сайт построен на joomla, может чего-то и конфликтует, так как ещё на одном модуле тоже есть проблема с крякозябриками. А в остальном, большое спасибо за скрипт!!!

    Comment от Алексей — 28.03.2009 @ 12:14

  8. Алексей, не сталкивался вплотную с джумлой, но попробуйте сохранить файл в utf-8 :) или выставить в начале файла принудительно заголовок: < ?php header('Content-Type: text/html; charset=utf-8'); ?>

    Для отображения прозрачности для png в ИЕ6 рекомендую http://www.twinhelix.com/css/iepngfix/

    Comment от ctepeo — 30.03.2009 @ 12:47

  9. Простите, пожалуйста, за глупый вопрос, но не нашла как использовать этот чудесный скрипт…:(
    Подскажите, как его вставить на странице? Я только учусь…

    Comment от Саша Зайцева — 04.08.2009 @ 11:41

  10. Саша! Вы бы написали где хотите его вставить, это просто отдельная страница или какая-нибудь CMS, например как я вставлял на Joomla, отсюда уже и отталкиваться. Или дайте ссылку на Ваш сайт.

    Comment от Алексей — 05.08.2009 @ 00:24

  11. Извините. К сожалению, сайта пока нет, я тренируюсь…
    Хочется использовать информер на отдельной странице, без системы управления. Хочется увидеть листинг кода и попробовать разобраться:)
    Спасибо!

    Comment от Саша Зайцева — 06.08.2009 @ 01:29

  12. Самое простое – просто вставить в Вашу страницу, как и другой обычный элемент, например, так:

    Курс валют

    http://www.imeasi.eu/teised/currency/default.html
    Думаю здесь ничего сложного нет, но если есть вопросы спрашивайте, не стесняйтесь!!! :)

    Comment от Алексей — 08.08.2009 @ 00:27

  13. Comment от Чазов — 30.09.2009 @ 16:30

  14. Очень четко написано, очень понравилось. Не жалею что прочитал

    Comment от Павел Хохолин — 09.10.2009 @ 17:13

  15. Может я и девушка, но в сайтостроении разбираюсь. Но! Курсы валют до сих пор не получается на сайт добавить.

    Comment от Elena — 14.12.2009 @ 16:49

  16. Елена, а почему не получается? Опишите проблему, может поможем!!! Самый простой способ вставить через iframe, например :
    И не забывайте, что курсы будут показываться только если в папке currency есть файды с текущем курсом.

    Comment от Алексей — 15.12.2009 @ 15:01

  17. iframe src=»http://www.ujutdom.com/currency/currency.class.php»></iframe
    Этот сайт почему-то не хочет отображать код?!

    Comment от Алексей — 15.12.2009 @ 15:03

  18. Самый простой способ вставить через iframe, например : iframe src=»currency.class.php»></iframe
    (заменить ёлочки на кавычки и поставить перед в начале

    Comment от Алексей — 15.12.2009 @ 15:09

  19. У меня очень даже отобразился, может, у Вас кеш?

    Comment от ctepeo — 15.12.2009 @ 15:10

  20. Не знаю, что у меня, но ни в одном браузере я не вижу нормально то, что хотел написать! :(

    Comment от Алексей — 15.12.2009 @ 15:19

  21. Спасибо за ваш скрипт! Установил на локальной машине – работает как часы. А вот на сайте не желает. Создает файл курсов без данных. Ни кто не сталкивался? У меня подозрение, что сайт ЦБ закрыт для этого IP

    Comment от 6ypaTuHo — 09.03.2010 @ 21:45

  22. 6ypaTuHo, проверьте получает ли скрипт данные

    Comment от ctepeo — 09.03.2010 @ 21:51

  23. Похоже, что не получает. Но я не знаю причину.

    Comment от 6ypaTuHo — 10.03.2010 @ 12:26

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


Сделано ctepeo на базе wordpress