Перейти к публикации

Создать кэширование для модуля валют


Рекомендованные сообщения

Все наверное видели модуль курса валют, модуль офигенный, выводи все что хочешь, подключается через include.

Все ок... но... можно ли сделать ему кэширование????? код внизу

<?php

// Получаем текущие курсы валют в rss-формате с сайта www.cbr.ru СКРИПТ СКАЧАН С VEXEL.SU

$content_today = get_content_today();

$content_yesterday = get_content_yesterday();

// Разбираем содержимое xml-файла, при помощи регулярных выражений

$pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";

// Для курсов валют на текущий день

preg_match_all($pattern, $content_today, $out_today, PREG_SET_ORDER);

// Для курсов валют на предыдущий день

preg_match_all($pattern, $content_yesterday, $out_yesterday, PREG_SET_ORDER);

//Задаем нулевые стартовые значения для того, чтобы избежать ошибок в дальнейшем

$dollar_today = "";

$dollar_yesterday = "";

$euro_today = "";

$euro_yesterday = "";

foreach($out_today as $cur)

{

if($cur[2] == 840) $dollar_today = str_replace(",",".",$cur[4]);

if($cur[2] == 978) $euro_today = str_replace(",",".",$cur[4]);

if($cur[2] == 392) $ien_today = str_replace(",",".",$cur[4]);

}

foreach($out_yesterday as $cur)

{

if($cur[2] == 840) $dollar_yesterday = str_replace(",",".",$cur[4]);

if($cur[2] == 978) $euro_yesterday = str_replace(",",".",$cur[4]);

if($cur[2] == 392) $ien_yesterday = str_replace(",",".",$cur[4]);

}

$position_usd = $dollar_today-$dollar_yesterday;

$position_euro = $euro_today-$euro_yesterday;

$position_ien = $ien_today-$ien_yesterday;

?>

<table width="100%" cellspacing="0" cellpadding="2"><tr><td style="padding-bottom:0px;"><font color="#666666">1 Евро (EUR) -

</span> </font> </td>

<td style="padding-bottom:0px;" width="100%"><font color="#666666"><?php echo $euro_today; ?></font></td>

<tr><td style="padding-bottom:0px;"><font color="#666666"> $ 1 Доллар США (USD) -

</font> <span class="usd">

</span> </td>

<td style="padding-bottom:0px;"><font color="#666666"><?php echo $dollar_today; ?></font></td>

</tr>

<tr><td style="padding-bottom:0px;" nowrap>

<p style="margin-right: 15px"><font color="#666666">100 Японских иен (JPY) -

</font> <span class="usd"></td>

<td style="padding-bottom:0px;"><font color="#666666"><?php echo $ien_today; ?></font></td>

</tr></table>

<?php

function get_content_today()

{

// Формируем сегодняшнюю дату

$date_today = date("d/m/Y");

// Формируем ссылку

$link_today = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date_today";

// Загружаем HTML-страницу

$fd_today = fopen($link_today, "r");

$text_today="";

if (!$fd_today) echo "Запрашиваемая страница не найдена";

else

{

// Чтение содержимого файла в переменную $text

while (!feof ($fd_today)) $text_today .= fgets($fd_today, 4096);

}

// Закрыть открытый файловый дескриптор

fclose ($fd_today);

return $text_today;

}

function get_content_yesterday()

{

// Формируем сегодняшнюю дату

$date_yesterday = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d") - 1));

// Формируем ссылку

$link_yesterday = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date_yesterday";

// Загружаем HTML-страницу

$fd_yesterday = fopen($link_yesterday, "r");

$text_yesterday="";

if (!$fd_yesterday) echo "Запрашиваемая страница не найдена";

else

{

// Чтение содержимого файла в переменную $text

while (!feof ($fd_yesterday)) $text_yesterday .= fgets($fd_yesterday, 4096);

}

// Закрыть открытый файловый дескриптор

fclose ($fd_yesterday);

return $text_yesterday;

}

?>

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...