Если Вы занимаетесь непосредстенно созданием или раскруткой сайтов, то вероятно часто вставала проблема: размещения на сайте информера курсов вылют. Выбор среди сервисов большой, но зачастую его необходимо качественно вписать в дизайн веб-сайт. Данные курсов будем брать с сайта 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">
`.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 и.т.д. Осталось записать все что мы наделали в файл =) продолжение следует.
Комментарии ()