PHP-скрипт для загрузки курсов валют
Многие из Вас неоднократно видели, что на некоторых сайтах выводятся курсы валют. Разумеется, администраторы этих сайтов сами ежедневно их не меняют (надеюсь). Они их подгружают с сайта ЦентроБанка. И в этой статье я дам код PHP-скрипта для загрузки курсов валют с сайта ЦентроБанка и вывода их на страницу.
Привожу сразу код скрипта:
<?php
$date = date("d/m/Y"); // Сегодняшняя дата в необходимом формате
$link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date"; // Ссылка на XML-файл с курсами валют
$content = file_get_contents($link); // Скачиваем содержимое страницы
$dom = new domDocument("1.0", "cp1251"); // Создаём DOM
$dom->loadXML($content); // Загружаем в DOM XML-документ
$root = $dom->documentElement; // Берём корневой элемент
$childs = $root->childNodes; // Получаем список дочерних элементов
$data = array(); // Набор данных
for ($i = 0; $i < $childs->length; $i++) {
$childs_new = $childs->item($i)->childNodes; // Берём дочерние узлы
for ($j = 0; $j < $childs_new->length; $j++) {
/* Ищем интересующие нас валюты */
$el = $childs_new->item($j);
$code = $el->nodeValue;
if (($code == "USD") || ($code == "EUR")) $data[] = $childs_new; // Добавляем необходимые валюты в массив
}
}
/* Перебор массива с данными о валютах */
for ($i = 0; $i < count($data); $i++) {
$list = $data[$i];
for ($j = 0; $j < $list->length; $j++) {
$el = $list->item($j);
/* Выводим курсы валют */
if ($el->nodeName == "Name") echo $el->nodeValue." - ";
elseif ($el->nodeName == "Value") echo $el->nodeValue." рублей<br />";
}
}
?>
Я постарался код тщательно прокомментировать, поэтому с его пониманием проблем возникнуть не должно. Так же, чтобы понять, почему столько и почему именно такие циклы, а также откуда берутся определённые условия, я настоятельно рекомендую зайти по ссылке из кода (только дату подставьте). Тогда Вы увидите XML-документ, и Вам уже будет гораздо проще понять, почему именно такой код был написан.
Вот так легко можно загрузить курсы различных валют мира с использованием PHP.
-
- Михаил Русаков
Комментарии (12):
не могу сменить кодировку.у меня на сайте windows-1251.в коде все испробывал.абракадабры выходят.как можно исправить?
Ответить
http://myrusakov.ru/php-encoding-problems.html
Ответить
михаил,можно ли оставить етот файл в дерриктории сайта,и извлеч из него переменные в document.write для всех страниц сайта?потому-что зто не совсем постой код.
Ответить
Можно, только этот файл надо будет подключать через require_once, а после выводить полученные переменные из него через PHP.
Ответить
А как сделать показ курса валют в одну строку?
Ответить
Убрать <br /> из кода.
Ответить
Добрый день, прошу автора мне помочь нужно реализовать вывод инфы из xml файла, (по аналогии что-то не получилось сделать) http://www.aviasales.ru/latest-offers.xml вывод на сайте на Вордпресс.Спасибо
Ответить
А возможно ли откорректировать скрипт.. Т.е выводить курс по отношению не к рублю, а к евро. Что бы выводилось примерно так: Доллар США= хх евро а в идеале так: 1 евро= xx Долларов США и соответственно так же с еще парой валют. С самим рублем например и Украинской гривной. Ну тут уже по аналогии. Вообще возможно ли такое решение
Ответить
Денис, ничего не реального в этом не вижу.
Ответить
Я так делаю: $xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp'); $usd = (string)$xml->Valute[9]->Value; $eur = (string)$xml->Valute[10]->Value;
Ответить
Скажите пожалуйста почему этот скрипт работает на локалке а при переносе сайта на хостинг скрипт не работает??,использую MODX
Ответить
Спасибо! все работает :)
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.