RSSExport
Общая информация
Скрипт "RSSExport" является Интернет-роботом бесплатной, круглосуточной, постоянно действующей службы в сети Интернет со строго фиксированными IP и доменными адресами. Скрипт "RSSExport" - скрипт-экспортер контента RSS-каналов в HTML-формат для вставки данных на страницы Bашего сайта. Прекращение работы скрипта не планируется, т.к. скрипт не требует абсолютно никакого обслуживания. У скрипта существует несколько версий, из которых версия "RSSExport" предназначена для бесплатного пользования. За пользование этой версией никогда не будет установлена никакая плата, не будут урезаны ее возможности, не будет проводится включения никаких рекламных материалов. Если Bы начали работать с существующей версией скрипта, Bы можете быть уверенны, что все существующие характеристики скрипта сохранятся в будущем. Изменение характеристик скрипта возможно только в сторону расширения его возможностей и улучшения характеристик.
Что делает скрипт
Скрипт "RSSExport" предназначен для:
- импортирования данных RSS-каналов;
- генерации HTML-кода на основе контента импортированного RSS-канала и отсылки созданного кода для динамического включения его в код страницы Bашего сайта;
- автономного просмотра в WEB-обозревателе контента RSS-каналов новостей.
Логика работы: скрипт получает вызов, анализирует параметры вызова и, если в параметрах указан адрес RSS-канала, производит запрос по этому адресу. Получив ответ от RSS-канала, форматирует ответ в зависимости от параметров, переданных ему вместе с поступившим вызовом, генерирует код для вставки на страницу Bашего сайта и отправляет этот код по адресу, откуда скрипт был запрошен. Если скрипт был вызван без параметров, то включаются параметры по умолчанию, а в качестве адреса тестового RSS-канала используется RSS-канал сайта "Благословение", который хоть и избыточен по информации, передаваемой им, но выполнен строго по технологии RSS и может быть использован как тестовый и настроечный канал. Поскольку предусматривается вставка кода вызова скрипта в Bашу страницу, то скрипт (а вернее - результаты его работы), является частью страницы и начинает работать тогда, когда Bаша страница будет кем-то загружена. Таким образом, на Bашей странице всегда будет самая свежая версия информации, для обновления которой надо просто перезагрузить страницу и в нее будет вставлена самая свежая информация в режиме реального времени.
Код, отправляемый скриптом: не содержит никаких заголовков, настроечных данных и т.п., это просто кусок HTML-кода для вставки в любое место Bашей страницы. Никаких материалов рекламного характера, копирайта и т.п. скрипт не вставляет. Код, генерируемый скриптом состоит только из данных RSS-канала и необходимых тэгов форматирования.
Скорость работы: ядро скрипта состоит не более, чем из 100 строк текста, большая часть из которых является проверочными процедурами и описаниями переменных параметров, поэтому время, затрачиваемое на работу самим скриптом ничтожно мало по сравнению со временем, затрачиваемым им на запрос и получение данных через интернет.
Всегда можно протестировать скорость работы скрипта с помощью утилиты "test.php", находящейся в одной папке со скриптом. Параметры запуска утилиты тестирования:
http://news.orthodoxy.ru/export/test.php?only_one=yes - "легкий" вариант, загружает один экземпляр скрипта.
http://news.orthodoxy.ru/export/test.php?only_one=no - "тяжелый" вариант, загружает 8 экземпляров скрипта.
Лирическое отступление от темы "Скорость работы": Поскольку заранее неизвестно, какой RSS-канал потребуется подключить, то тем более неизвестно его географическое местоположение, загруженность сервера хостера сайта-поставщика RSS-канала и время его отклика. В случае задержек запросов и как следствие - обрыва связи, рекомендуем увеличивать время ожидания "KeepAliveTimeout" до тех пор, пока данные канала не начнут поступать без перебоев. В частности, из опыта работы с каналами, замечено, что при подключении каналов Украины происходит определенная задержка, которая приводит иногда к отключению по таймауту (окончанию времени ожидания), когда графический баннер канала (особенно, если он большой по объему) не успевает закачаться, хотя текстовая информация успевает. Увеличение Timeout позволяет избежать этих проблем.
В настоящее время ведется работа над новой процедурой кэширования информации, чтобы в случае прихода запроса выдавать информацию канала не с самого сайта, где расположен канал, а из кэша хранения данных, если время жизни кэша еще действует. Но решение этой проблемы сопряжено с некоторыми трудностями, которые обусловлены тем, что владельцы каналов часто игнорируют стандарт RSS, не заполняют множество служебных полей, которые и предназначены для того, чтобы определить, к примеру, в какие дни и часы канал обновляется, а в какие нет, следовательно - нет информации, по которой можно было бы определить время жизни кэша канала.
Где скрипт расположен
Для обеспечения стабильности работы и независимости от исправности/неисправности оборудования у компании-хостера, скрипт доступен в сети Интернет сразу по нескольким адресам:
По каждому из этих адресов лежат совершенно одинаковые скрипты, по какому адресу Bы будете его вызывать - абсолютно все равно, но если Bы начали использовать один адрес, то и продолжайте его использовать дальше, т.к. скрипт развивается и версия скрипта будет обновляться без извещения пользователей и прозрачно для них, а использование одного адреса даст возможность пользоваться услугами кэша запросов, а кэш у каждого экземпляра скрипта свой собственный.
Параметры вызова скрипта
Адрес скрипта: http://news.orthodoxy.ru/export/rss_export.php
Параметры скрипта: задаются сразу после адреса скрипта после знака вопроса ? и разделяются знаком &. Имеют следующий вид:
адрес_скрипта?параметр1=значение1&параметр2=значение2&параметр3=значение3
Любые параметры могут опускаться, порядок следования параметров значения не имеет. Если параметр не указан, используется значение по умолчанию (см. таблицу). При запуске скрипта без параметров скрипт запускается как: тестовый канал, скроллинг в одну строку слева направо, ширина строки во всю доступную ширину, scrollamount=1 scrolldelay=20, используются графические элементы, параметры стилей перенимаются у страницы, в которую скрипт вставлен.
Вопросы оформления выводимых результатов
В скрипте предусмотрена очень гибкая возможность для форматирования выводимых данных, основанных на подключении к выводимому модулю классов, описанных во внешних файлах таблиц стилей - CSS-файлах. Общая логика такова:
выводимые данные могут быть заключены в тэги <DIV>...
<div> --- данные, выводимые скриптом --- </div> |
или в тэги <SPAN>
<span> --- данные, выводимые скриптом --- </span> |
достигается это установкой параметра вызова:
?use_div=yes&div_class=class_name |
или
?use_span=yes&span_class=class_name |
конечно же это имеет смысл только при установленном:
?use_css=yes&css_url=url_на_ваш_css_файл |
Возможность переключения между <DIV> и <SPAN> включена во избежание проблем, связанных с некорректной отработкой этих тэгов разными броузерами, т.е. у вас есть возможность предварительно проанализировать $USER_AGENT и, в зависимости от его значения, произвести разный вызов (если Opera Bас не обманет, и не притворится кем то другим...).
Таким образом, мы строим следующую конструкцию:
<link href="url_на_ваш_CSS_файл" rel="stylesheet" type="text/css"> <div class=класс_в_css_файле><!-- или SPAN --> --- данные, выводимые скриптом --- </div> |
Если вы теперь во внешнем CSS-файле (к примеру - http://mysute/style.css ) опишите следующее:
.test { background-color: black; /* чего только не бывает (:-)) */ width: 29%; height: 157px; border: solid; padding: 5px 5px 5px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 10px; color: white; }
.test a:hover { color: lime; text-decoration: none; }
.test a:visited, .test a:link { color: white; text-decoration: none; }
|
а потом вызовете скрипт с такими параметрами:
?use_css=yes&css_url=http://mysute/style.css&use_span=yes&span_class=test |
то это превратится в скрипте в конструкцию:
<link href="http://mysute/style.cs" rel="stylesheet" type="text/css"> <span class=test> --- данные, выводимые скриптом --- </span> |
Пример вызова скрипта с параметрами (строка разбита на несколько частей):
http://news.blagoslovenie.msk.ru/export/rss_export.php ?rss_url=http://news.yandex.ru/auto.rss &use_css=yes &css_url=http://news.blagoslovenie.msk.ru/export/style.css &use_div=yes &div_class=test &mode=table &width=50%% &height=50 &ping_pong=yes &scrolldelay=10 &img=no |
Все это надо соединить в одну строку без пробелов, которая и будет являться строкой вызова скрипта. Параметры, возможные их значения, логику поведения скрипта вы можете найти в приведенной ниже таблице:
Таблица значений параметров:
| Параметр |
Возможные значения |
Описание |
| Управление данными |
| rss_url |
полный URL существующего RSS-канала |
подключается к указанному RSS-каналу и выводит данные из него |
| отсутствует |
перенаправление на RSS-канал сайта: http://blagoslovenie.msk.ru/publisher |
| "мусор" |
непредсказуемо, воспринимает мусор как путь к RSS-файлу без анализа |
| show_channel_name |
no |
исключает из выводимых данных название RSS-канала |
| любое другое или отсутствие |
show_channel_name=yes |
| show_full_intro |
yes |
включает показ вводного текста каждой новости |
| любое другое или отсутствие |
show_full_intro=no |
| Управление скроллингом и логикой поведения |
| type |
noscroll |
отключает скроллинг |
| любое другое или отсутствие |
type=scroll |
| direction |
left |
направление скроллинга, если режим скроллинга включен (type=scroll) |
| right |
| up |
| down |
| любое другое или отсутствие |
вставляется как тэг без анализа, если объект не может использовать прокрутку с этим тэгом, автоматически включается direction=left |
| mode |
table |
форматирование импортируемого материала в стиле "колонки". Каждый абзац начинается с новой строки. |
| любое другое или отсутствие |
в стиле сплошной строки mode=line |
| width, height |
пикселы или проценты |
ширина и высота соответственно области вывода в режиме скроллинга при mode=table, пикселы указываются десятичным числом, если используется процентное выражение, то ставить два знака процента подряд - %% |
| отсутствие |
тэги не вставляются |
| "мусор" |
непредсказуемо, воспринимает мусор, как значение тэгов |
| scrollamount |
от 1 до 50 |
шаг скроллинга в пикселах |
| любое другое или отсутствие |
scrollamount=1 |
| scrolldelay |
от 1 до 500 |
задержка между шагами скроллинга, фактически - скорость скроллинга, чем меньше число, тем быстрее скроллинг. |
| любое другое или отсутствие |
scrolldelay=20 |
| Управление внешним видом |
| css_url |
полный URL существующего и доступного CSS-файла таблицы стилей |
включает в скрипт линка CSS URL на указанный файл URL без кавычек (!!!) |
| отсутствие |
отключает использование CSS, равнозначно use_css=no |
| "мусор" |
непредсказуемо, воспринимает мусор как путь к CSS-файлу без анализа, если в этом мусоре все же находит css-файл, то подпрыгивает от радости, громко кричит "А-й-я-а..." и в качестве благодарности приносит вам чашечку кофя (шутю...) |
| use_css |
yes |
разрешает использование внешнего файла таблицы CSS-стилей, включает в экспортируемые данные соответствующий тэг |
| любое другое или отсутствие |
use_css=no независимо от значение css_url |
| img |
no |
отключает все графические элементы (кнопочки, стрелочки и т.п.) в экспортируемых данных, передается только текстовая информация. |
| любое другое или отсутствие |
графика включается, графические элементы подкачиваются с сайта скрипта по полному URL-у. |
| use_div |
yes |
обрамляет экспортируемые данные тэгом <div class=div_class>данные</div> |
| любое другое или отсутствие |
use_div=no |
| div_class |
имя класса CSS |
подставляет имя класса в обрамление <div class=div_class>данные</div> |
| отсутствие |
отключает обрамление тэгами <div> , равнозначно use_div=no |
| "мусор" |
непредсказуемо, воспринимает мусор как имя класса div_class без анализа |
| use_span |
yes |
обрамляет экспортируемые данные тэгом <span class=div_class>данные</span> |
| любое другое или отсутствие |
use_span=no |
| span_class |
имя класса CSS |
подставляет имя класса в обрамление <span class=span_class>данные</span> |
| отсутствие |
отключает обрамление тэгами <span> , равнозначно use_span=no |
| "мусор" |
непредсказуемо, воспринимает мусор как имя класса span_class без анализа |
| bgcolor |
числовое или текстовое обозначение цвета |
цвет заливки фона, действует только при включенном режиме скроллинга type=scroll, применять или текстовое значение (silver, green, orange) без кавычек, или HEX-значение без предваряющего знака # (f0f0f0, d6eb12) |
| отсутствие |
тэг bgcolor не вставляется |
| "мусор" |
введенные данные воспринимаются как обозначение цвета без анализа, если данные - мусор, то может получиться непредсказуемый цвет |
| Информационные запросы |
| help |
yes |
выводит справочную информацию по скрипту |
| любое другое или отсутствие |
отсутствие реакции |
| ver |
yes |
выдает номер версии скрипта и прекращает работу |
| любое другое или отсутствие |
отсутствие реакции |
| info |
yes |
выдает техническую информацию и прекращает работу |
| любое другое или отсутствие |
отсутствие реакции |
Включение скрипта в вашу страницу
Так как скрипт обходится в работе стандартными средствами PHP, то не возникает никаких проблем с включением скрипта в любом месте вашего сайта. Необходимо проследить за тем, чтобы строка вызова скрипта была воспринята сервером не как HTML-команда, а именно как PHP и соответствующим образом обработана.
У многих начинающих WEB-мастеров, которые пользуются только чистым HTML и ни разу не пробовали запустить PHP, возникают вопросы "как, что, где, зачем, и т.п.". Почти все продавцы хостинга сейчас поддерживают "стандартный" набор: HTML+SHTML+PHP+MySQL, если этого набора нет, то это следует считать скорее исключением из правил. Если на Bашем хостинге работает PHP, то Bы можете смело переименовать ВСЕ файлы HTML в PHP. Сервер просто будет просматривать эти файлы на предмет наличия в них PHP-команд и если обнаружит их, то выполнит, а если не обнаружит, то это никак не повлияет на HTML-код, имеющийся в этом файле, сервер просто пропустит весь HTML-код через себя в том виде, в котором он содержится в файле.
Пример включения режима PHP в PHP-файле (который, по сути, может являеться HTML-файлом и не содержать ни одной PHP команды):
<?php - включение режима PHP, ?> - выход из режима PHP, то, что между тэгами - операторы и команды PHP. include("имя_файла") - фактически вставляет вместо себя код, находящийся в "имя_файла".
.... <tr> <td> <?php include("http://news.orthodoxy.ru/export/rss_export.php")?> </td> </tr> .... |
Тестовый PHP файл (Сохраните этот текст в файле *.php и запустите его на сервере по http-протоколу):
Запустить этот файл и посмотреть пример в работе можно >>> здесь <<<
<html><!-- Мы в режиме HTML, но файл имеет расширение php --> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1251"> <title>Пример работы скрипта</title> </head> <body>
<style type="text/css"><!-- Стили заданы только для показа возможностей форматирования --> .test {font-family:Verdana, Geneva, Arial, Helvetica, sans-serif; font-size:11px; background:black; } .test a:link, .test a:visited {color:yellow; text-decoration:none; } .test a:hover {color:red; text-decoration:none; } .white {font-family:Verdana, Geneva, Arial, Helvetica, sans-serif; font-size:13px; background:black; } .white a:link, .white a:visited {color:white; text-decoration:none; } .white a:hover {color:lime; text-decoration:none; } </style>
<h2>Пример работы скрипта:</h2>
<table border="1" bordercolor="#000000" cellspacing="0" cellpadding="5"> <tr> <td colspan="3"> <?php include("http://news.orthodoxy.ru/export/rss_export.php?direction=right&scrollamount=5&ping_pong=yes")?> </td> </tr> <tr> <td width="30%" align="center"> <?php include("http://news.orthodoxy.ru/export/rss_export.php?type=noscroll&direction=left&mode=list&img=no")?> </td> <td class="white"> <?php include("http://news.orthodoxy.ru/export/rss_export.php?type=noscroll&mode=table&img=no&show_channel_name=no")?> </td> <td> <?php include("http://news.orthodoxy.ru/export/rss_export.php?type=noscroll&direction=left&mode=table")?> </td> </tr> <tr> <td class="test"> <?php include("http://news.orthodoxy.ru/export/rss_export.php?mode=table&direction=up&scrolldelay=50")?> </td> <td bgcolor="#C0C0C0"> <?php include("http://news.orthodoxy.ru/export/rss_export.php?ping_pong=yes&direction=left&mode=table")?> </td> <td> <?php include("http://news.orthodoxy.ru/export/rss_export.php?mode=table&bgcolor=yellow&direction=down")?> </td> </tr> <tr> <td colspan="3"> <?php include("http://news.orthodoxy.ru/export/rss_export.php?bgcolor=dcdcdc")?> </td> </tr> </table>
</body> </html> |
Отладка параметров скрипта:
Для отладки и подбора передаваемых скрипту параметров не обязательно размещать PHP-файл на сервере. Ту строку вызова скрипта, которую Bы помещаете в оператор include("строка_вызова"), Bы можете просто "скормить" любому броузеру и он совершенно спокойно отобразит Bам то, что получится при вызове скрипта.
Контактные данные:
Автор будет признателен всем, кто будет сообщать ему о замеченных неполадках в работе скрипта, приветствуются пожелания по специализации работы скрипта. Контактный адрес для связи: mailto:andyr@mail.ru
Blagoslovenie
|