Скрипт информера курсов валют

Если Вы занимаетесь непосредстенно созданием или раскруткой сайтов, то вероятно часто вставала проблема: размещения на сайте информера курсов вылют. Выбор среди сервисов большой, но зачастую его необходимо качественно вписать в дизайн веб-сайт. Данные курсов будем брать с сайта rbc.ru (благородно предоставляющий сервис экспорта курсов валют). Вообще тема с информерами обширная и поэтому мы будем не раз поднимать ее в дальнейшем. Но начнем с малого: создадим простейший информер котировок валют. Главным показателем для нас будет производительность скрипта и безопасность. Итак полных исходник на php:

<?php 
if (time()-1800>filemtime("usd.txt")) {
$f=fopen(`usd.txt`,`w`); 
ob_start();
include(`http://80.68.240.81/free/cb.0/free.fcgi?period=DAILY
&tickers=USD&separator=%2F&data_format=BROWSER`);
$b = ob_get_contents(); ob_end_clean(); 
fwrite($f,`<img src="vladwebstudio.ru/img/dollar.gif" 
align="middle">&nbsp;&nbsp;&nbsp;
`.ereg_replace(`[^/.0-9]`,`0`,substr($b,18,7)).`<br />`);

include(`usd.txt`);
?>
Инофрмацию о котировках валют будем выгружать с ресурса export.rbc.ru. Так как обработка данных будет происходить на стороне сервера, то указав IP адрес съекономим лишнее обращение к DNS серверу. Рассмотрим конструкцию обеспечивающую минимум нагрузок на сервер:

<?php
if (time()-1800>filemtime("usd.txt")) {
//выгрузка информации с сервера и запись в файл usd.txt
}
include(`usd.txt`);
?>
Условием time()-1800>filemtime("usd.txt") мы обеспечиваем выполнение php скрипта каждые полчаса (1800 секунд). Если текущее время больше времени последнего редактирования файла "usd.txt" более чем на полчаса, то заново выполянем операцию подключения к серверу и запись в файл. В итоге просто делаем инклуд файл.

Рассмотрим еще одну конструкцию:

ob_start();
include(`http://80.68.240.81/free/cb.0/free.fcgi?period=DAILY&tickers=USD&separator=%2F&data_format=BROWSER`);
$b = ob_get_contents(); ob_end_clean();
Здесь мы кэшиурем инклуд. Дело в том, не все хостинги позволяют рабоать с URL адрессами с помошью функций fopen fgets и.т.д. Осталось записать все что мы наделали в файл =) продолжение следует.

Оставить комментарий

Комментарии ()