Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля
Новогодние скидки до 25%!
Подробнее

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

15.09.2006, 01:47
law
Php-nuke

Зарегистрирован:
2005-11-02
Сообщений: 47

На сколько я понял из описания модуля магазина в нем есть возможность автоматического получения курсов валют ЦБ.
А нельзя ли получить кусочек кода реализующего эту возможность для использования не для целей электронной коммерции улыбка ?

Или может быть кто нибудь может посоветовать вариант парсинга http://www.cbr.ru/scripts/xml_daily.asp с возможностью последующего использования полученых значений на всем сайте?
15.09.2006, 19:02
Кирилл Хряпин
NetCat

Зарегистрирован:
2006-06-15
Сообщений: 207

Код:
$src = file_get_contents("http://www.cbr.ru/scripts/XML_daily.asp");
if (!$src) die("no data");

if (!preg_match("#
<CharCode>USD</CharCode>s*
<Nominal>d+</Nominal>s*
<Name>.+?</Name>s*
<Value>([d,]+)</Value>
#xs", $src, $regs)
) {
die ("no rates");
}

$usd_rate = (double)str_replace(",", ".", $regs[1]); // , to .
18.09.2006, 23:47
law
Php-nuke

Зарегистрирован:
2005-11-02
Сообщений: 47

А куда бы это запихать чтобы раз в сутки забирался новый курс, проверялась его достоверность (например, если при получении нового курса произошол сбой связи и новый курс не был получен) и актуальные значения курсов валют были доступны во всех макетах и шаблонах?
20.09.2006, 18:18
Кирилл Хряпин
NetCat

Зарегистрирован:
2006-06-15
Сообщений: 207

"Запихать" можно куда Вам удобнее: либо сделайте отдельный макет, где в шаблонах вывода навигации организуйте получение курсов валют и сохранение результатов в базу данных; можете сделать отдельный скрипт (в этом случае необходимо самостоятельно создавать подключение к базе данных). Ссылку на страницу, получающую курсы, поместите в "Управление задачами" (на сервере должен быть настроен cron).

Сохранив данные в базе данных, Вы в любой момент сможете получить результаты. Если Вы хотите, чтобы курсы были доступны на любой странице, Вы можете добавить соответствующий код в файл netcat/modules/default/function.inc.php.
198 196 2006-09-20 18:18:17 9974
Описание проекта