php скрипт для загрузки курсов валют
Php скрипт для загрузки курсов валют
В последнее время технические ресурсы Банка России работают ненадежно. Усложнено получение данных о текущих курсах валют: от разработчиков требуют ставить специальные заголовки, данные не загружаются с первого раза. В следствие чего старые скрипты перестали работать.
Осложнение объясняют ведущейся на сервис DDoS атакой, но ведь нам от этого не легче.
Выход есть!
Достаточно заменить старые ссылки на сервисы ЦБ РФ на ссылки на нашем ресурсе, и получать все те же самые данные без какой-либо переделки старых скриптов.
Если вы использовали такую ссылку для получения котировок на сегодня:
То вам подойдет любая из двух ниже, в зависимости от того, нужна ли вам перекодировка в UTF-8 или устроит исходная 1251:
Если вы использовали английскую версию:
То на замену вам подойдую любые из этих, с кодировкой 1251 или в UTF-8:
Кроме файлов с курсами в формате XML на нашем ресурсе вы можете получить курсы валют в формате JSON и курсы ЦБ РФ в формате JSONP:
Для вашего удобства в последних есть курсы на сегодняшнюю и прошлую даты. Как использовать эти курсы.
Кроме того, доступны текущие курсы в формате, совместимом с библиотекой money.js и многими другими:
Вот и всё!
Время, которое вы бы потратили на переписывание и обновление старых приложений, теперь вы можете использовать и для более приятных занятий.
Этот проект был бы невозможен без выделенного сервера Xeon E5 Dual от Timeweb. Сервера для любых нагрузок — от Timeweb.
Как показать текущие курсы валют на сайте?
Нет ничего проще! Добавьте такой код где нужно показать курсы:
И такой код в начале страницы в теге :
Курс валют ЦБ РФ для сайта на PHP
Эта функция выгружает данные курсов и сохраняет их в статической переменной внутри функции, таким образом что при повторном вызове этой функции обращения к API не будет.
Как получить последние курсы со стороны сервера?
Не пользуетесь PHP? Нет проблем! Страницы с курсом открываются медленней, чем без? Есть ответ! Вам нужно кешировать курсы. Они меняются не чаще раза в день, потому вы ничего не потеряете от обновления курсов раз в несколько часов.
Добавьте такой код в /etc/cron.hourly/cbr:
Затем дайте права на выполнение:
И сделайте первую загрузку:
Эта программа будет поддерживать самую актуальную версию данных о курсах валют во всех форматах в каталоге /var/cache/cbr/
Использовать их можно, например, так:
Да, вот так просто! Работает и оффлайн.
Условия использования
Раз, не более 5 запросов в секунду, 120 запросов в минуту с одного IP и не более 10000 запросов в сутки, пожалуйста. Если вам надо больше, то вы что-то делаете не так. Попробуйте использовать кеш данных курсов валют.
Два, разместите обратную ссылку на проект в одном из следующих форматов:
Администрация сайта оставляет за собой право закрыть доступ для IP и сайтов, нарушающих условия использования.
Понравилось? Помогло? Сберегло время?
Помогите с оплатой услуг CDN для проекта. Услуги CDN стоят примерно 1200 рублей в месяц.
Спонсоры сайта имеют возможность обратиться к администрации сайта с вопросами и предложениями.
Данные ниже получены из файла в формате JSONP.
PHP-скрипт для загрузки курсов валют
Многие из Вас неоднократно видели, что на некоторых сайтах выводятся курсы валют. Разумеется, администраторы этих сайтов сами ежедневно их не меняют (надеюсь). Они их подгружают с сайта ЦентроБанка. И в этой статье я дам код PHP-скрипта для загрузки курсов валют с сайта ЦентроБанка и вывода их на страницу.
Привожу сразу код скрипта:
Я постарался код тщательно прокомментировать, поэтому с его пониманием проблем возникнуть не должно. Так же, чтобы понять, почему столько и почему именно такие циклы, а также откуда берутся определённые условия, я настоятельно рекомендую зайти по ссылке из кода (только дату подставьте). Тогда Вы увидите XML-документ, и Вам уже будет гораздо проще понять, почему именно такой код был написан.
Вот так легко можно загрузить курсы различных валют мира с использованием PHP.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 12 ):
не могу сменить кодировку.у меня на сайте windows-1251.в коде все испробывал.абракадабры выходят.как можно исправить?
михаил,можно ли оставить етот файл в дерриктории сайта,и извлеч из него переменные в document.write для всех страниц сайта?потому-что зто не совсем постой код.
Можно, только этот файл надо будет подключать через require_once, а после выводить полученные переменные из него через PHP.
А как сделать показ курса валют в одну строку?
Добрый день, прошу автора мне помочь нужно реализовать вывод инфы из xml файла, (по аналогии что-то не получилось сделать) http://www.aviasales.ru/latest-offers.xml вывод на сайте на Вордпресс.Спасибо
А возможно ли откорректировать скрипт.. Т.е выводить курс по отношению не к рублю, а к евро. Что бы выводилось примерно так: Доллар США= хх евро а в идеале так: 1 евро= xx Долларов США и соответственно так же с еще парой валют. С самим рублем например и Украинской гривной. Ну тут уже по аналогии. Вообще возможно ли такое решение
Денис, ничего не реального в этом не вижу.
Скажите пожалуйста почему этот скрипт работает на локалке а при переносе сайта на хостинг скрипт не работает. использую MODX
Спасибо! все работает 🙂
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.
Курс валют на PHP: делаем информер из XML
В статье «Информер валют своими руками» я приводил пример парсера, вырезающий курс валют из HTML содержимого страницы. В этой статье рассмотрим альтернативный вариант получения информации о курсах валют из файлов формата-импорта (XML).
Новостные сайты немыслимы без курса валют
Как же быть, если курсы валют так популярны и их наличие на сайте порой удерживает там посетителей? Делать информер мы будем на PHP, предъявляя ряд требований к донорам, которые будут предоставлять нам такую информацию:
Информер курса валют для Украины
В Украине особый интерес вызывает курс валют от Приватбанка и НБУ. Основными валютами тут являются USD, EUR и RUB. Где взять их бесплатно и в XML?
Курс валют от Приватбанка
Крупный украинский «Приватбанк» имеет API, предоставляющий информацию о наличных и безналичных курсах валют. В данном случае нас интересует наличный курс в Приватбанке, его можно взять по адресу:
Чтобы информацию выводить на своем сайте, мы должны обработать XML. Сделаем это с помощью PHP:
Результат работы скрипта:
Курс валют от НБУ
Курс основных валют в Украине (USD, EUR и RUB) от Национального Банка Украины (НБУ) можно взять у того же Приватбанка (достаточно немного модифицировать уже приведенный код):
Результат работы скрипта (выводит курс основных валют на текущий день):
USD: 23.36832
EUR: 25.57195
RUR: 0.33762
Информер курса валют для России
Вот как вытянуть на PHP оттуда указанные валюты (хотя при желании можно забрать другие) на текущую дату (в переменную $date можно подставить любую дату и получить курс валют на указанный день):
Результат работы скрипта:
Заключение
Выгодных вам курсов валют и стабильной работы в скриптах!
Специализируюсь на безопасности сайтов: защищаю сайты от атак и взломов, занимаюсь лечением вирусов на сайтах и профилактикой.
Наверняка у Вас есть вопросы, просьбы или пожелания. Не стесняйтесь спросить, я отвечаю всегда быстро.
Создание AJAX конвертора курсов валют при помощи PHP, jQuery и Google
Если вы не знаете, то я вам открою страшную тайну! Помимо основных функций поисковой системы Google предоставляет ещё и множество других услуг. Одна из них это калькулятор с расширенными возможностями. Как это можно использовать? Ответ в этой статье.
Что нам нужно для того, чтобы закодить данный конвертор? PHP, jQuery, Google, прикольный музон и конечно же этот урок!
Давайте же начнём. Создайте новый файл index.php и вставьте следующий код:
У нас 2 выпадающих меню с наименованиями валют, поле для суммы и кнопка. Ниже div с id results, который будет отображать результаты.
Теперь сделаем AJAX запрос получения и отображения результата конвертирования:
Мы делаем ajax запрос к файлу convert.php и если всё прошло успешно выводим результат в div.
А вот и convert.php
Этот код в принципе не сложный, но я бы хотел пояснить вот что:
Этот код действительно интересный. Он работает только начиная с PHP 5.2.0. Эта функция с лёгкостью фильтрует данные.
Её можно использовать как для неизвестных ресурсов, так и для введённых пользователем данных.
Благодаря filter_input вы можете фильтровать:
Если фильтрация произошла успешно, функция вернёт чистое значение. Если произойдёт ошибка, то FALSE. NULL если не заданы параметры.
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.codeforest.net/building-an-ajax-currency-converter-with-php-jquery-and-google
Перевел: Станислав Протасевич
Урок создан: 19 Февраля 2011
Просмотров: 21921
Правила перепечатки
5 последних уроков рубрики «PHP»
Фильтрация данных с помощью zend-filter
Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Контекстное экранирование с помощью zend-escaper
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Подключение Zend модулей к Expressive
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Совет: отправка информации в Google Analytics через API
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Получение курсов евро
Подскажите, где можно получать курсы валют, сейчас получаю с сайта cbr.ru XML файл, но порой вылетает ошибка, PHP что не удалось открыть стрим.
как правильно подключаться к cbr?
или дайте ссылку на другой ресурс, где можно получать курсы!
3 ответа 3
ЦБ РФ не любит когда вы делаете больше чем сколько-то запросов в день. Ваш скрипт делает запрос к сервисам ЦБ РФ каждый раз когда кто-то открывает страницу. Если у вас хотя бы 1000 просмотров страниц в день, то это значит 1000 обращений к сервису ЦБ РФ. Этого количества вполне может быть достаточно чтобы забанить вас.
Если даже у вас нет никаких посетителей, на том же сервере что и ваш могут быть другие сайты, у которых такой же скрипт. Или даже хуже: автор встречал случаи когда для конвертации валют в прайс-листе для каждой строчки и для каждой валюты делался запрос за курсами валют. В прайс-листе было под тысячу позиций, а это значит для каждого скаченного прайс-листа к сайту ЦБ РФ делалось несколько тысяч запросов. Будь я вебмастером сайта ЦБ РФ, я бы тоже за такое внёс любые IP в чёрный список!
Так или иначе, попасть в чёрный список сайта ЦБ РФ очень просто. В этом случае вы будете получать такую ошибку:
Ошибка возникает потому что сайт ЦБ РФ передаёт вам куки и просит их сохранить и использовать при следующем запросе. То есть, вам придётся эмулировать браузер. И даже если вы будете эмулировать браузер, с вашим скриптом вы всё равно можете попасть в бан, из которого эмуляцией браузера не выбраться: все запросы к сайту ЦБ РФ будут сбрасываться. Как ни крути, вашим скриптом нельзя пользоваться.
Частично нивелировать проблему можно если кешировать данные после получения как минимум на несколько часов. Всё равно они обновляются лишь пару раз в день. Это сработает если это ваш выделенный сервер и никто больше кроме вас не использует похожие скрипты, засыпающие ЦБ РФ запросами.
Ещё лучше будет показывать данные прямо на стороне клиента, минуя серверную часть. Данные в подходящем формате можно взять с известного зеркала с курсами ЦБ РФ. Этот сайт хорошо себя зарекомендовал давней и надёжной работой.
Аналогично можно показывать курсы других валют, показывать изменение курса относительно прошлого дня, и так далее.
Если вы посмотрите, там есть все необходимые данные и даже отсылки к архиву курсов валют.