Иногда возникает необходимость хранить в файле данные о курсе валют для его последующего использование в различных скриптах (например, в валютном калькуляторе). Разумеется, данные о курсе валют должен ежедневно обновляться и в файл должны записываться новые данные.
Курс валют мы будем брать с сайта ЦБР. Данные о валютах хранятся в XML файлах, но мы будем обрабатывать их в виде простых текстовых файлов, что бы пример не показался вам слишком сложным. Прежде всего, необходимо подключить в ваш индексный файл curs.php.
Файл index.php
… < ?php include('curs.php') ?> …
Рассмотрим подробнее файл curs.php:
< ?php function readDatabase($filename) { $data = implode("",file($filename)); $cur = strip_tags($data); $cur = str_replace(" ", "", $cur); $cur = str_replace(",", ".", $cur); $cur = substr($cur, 11, 7); return $cur; } include("config.php"); $date = date("d/m/Y"); if ($date_cashe != $date) { $link = "http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1=".$date."&date_req2=".$date."&VAL_NM_RQ="; $cur_dol = readDatabase($link."R01235"); $cur_euro = readDatabase($link."R01239"); if (($cur_dol != '') and ($cur_euro != '')) { $f = fopen("informer/config.php", "w"); $text = "< ?php ".chr(36)."date_cashe = '".$date."'; ".chr(36)."cur_dollar = '".$cur_dol."'; ".chr(36)."cur_euro = '".$cur_euro."'; ?>"; fwrite($f, $text); fclose($f); } } ?>
Прежде всего, мы открываем файл config.php и смотрим, и считываем из него последнюю дату обновления курса валют:
< ?php $date_cashe = '27/04/2007'; $cur_dollar = '25.7446'; $cur_euro = '34.9972'; ?>
Если текущая дата больше даты обновления курса:
if ($date_cashe != $date)
производим обновления данных о курсе функцией readDatabase.
Обратите внимание, что в качестве параметров мы передаем функции код валюты (R01235, R01239), который вы спокойно можете взять с сайта http://www.cbr.ru.
Далее, мы открываем файл, удаляем из него все теги (strip_tags) и вырезаем значение курса валюты.
В данном примере отображен процесс получения данных по двум валютам: доллару и евро. В случае, если функция вернула не пустые результаты:
if (($cur_dol != '') and ($cur_euro != ''))
осуществляем запись в config.php данных о дате обновления (текущая дата) и курсе валют.
Теперь при следующем заходе пользователей на сайт в течение дня в config.php будет стоять текущая дата, и данные в этот день больше обновляться не будут (что сэкономит время загрузки страницы).
Постоянные ссылки
При копировании ссылка на TeaM RSN обязательна!
Оставить комментарий
Вы должны войти, чтобы оставить комментарий.