Примеры разработки RSS-источников и RSS-ридеров
Публикация RSS файла
Создание RSS потока не ограничивается разработкой RSS документа. Необходимо еще опубликовать этот файл. Для этого потребуется выполнить следующую последовательность действий:
- Выбрать подходящее название для RSS файла. Расширение должно быть .xml.
- Проверить RSS файл на правильность с помощью подходящей программы-валидатора, например, взятой по адресу http://www.feedvalidator.org.
- Разместить RSS файл в подходящем веб-каталоге веб-сервера.
- Скопировать одну из "кнопок":илив веб-каталог.
- Вставить выбранную "кнопку" на исходящую страницу RSS потока в виде гиперссылки на RSS файл, например:
<a href = "www.myhp.edu/rss/myrss.xml"> < img src="http://www.myhp.edu/rss/rss.gif" width="35" height="15"> </a>
- Разместить созданный RSS поток в популярных Каталогах RSS потоков, при этом URL потока должен ссылаться именно на сам XML файл потока, т.е. http://www.myhp.edu/rss/myrss.xml.
- Можно также зарегистрировать поток в популярных поисковых системах, например:
- Периодическое обновление потока.
В принципе, можно самостоятельно заниматься формированием данных в соответствующем формате RSS для работы потока. Однако имеются достаточно удобные высокоуровневые средства для автоматизации данной работы. Например:
- MyRSSCreator - http://www.myrsscreator.com/
- FeedFire - http://www.feedfire.com/site/index.html.
Для чтения RSS потоков используются специальные программы чтения – RSS ридеры. Некоторые из браузеров имеют встроенные RSS ридеры. В частности, веб-браузер MS Internet Explorer 7 может интерпретировать XML файлы RSS потоков и корректно их отображать.
Добавление RSS-канала с помощью Microsoft Internet Explorer версии 7
При использовании MS Internet Explorer версии 7 и Office Outlook 2007 можно добавлять и просматривать RSS-каналы с помощью любой из этих программ.
- При просмотре веб-страницы, содержащей RSS, в Internet Explorer рядом с кнопкой( Домашняя страница) отображается кнопка.
- Нажмите кнопку.
- На веб-странице отобразится список доступных RSS-каналов.
- Выберите RSS-канал, который необходимо добавить.
Можно также нажать кнопки,или, расположенные на веб-странице.
Порядок выполнения лабораторной работы
1. Cоздания RSS документа с помощью PHP сценария и с использованием интерфейса DOM XML.
- Подготовьте файл, содержащий сценарий на языке PHP:
<?php // Создается новый XML документ. $dfeed = new DOMDocument('1.0', 'utf-8'); // Создание корневого элемента <rss> $erss = $dfeed->createElement('rss'); $erss->setAttribute('version', '2.0'); // И добавление его в дерево документа $dfeed->appendChild($erss); // Создание элемента <channel> и добавление его к <rss> $echannel = $dfeed->createElement('channel'); $erss->appendChild($echannel); // Создание и добавление в channel // узлов <title>, <link>, <description>, <language>, <pubDate> $echannel->appendChild( $dfeed->createElement('title', 'RSS-channel title') ); $echannel->appendChild( $dfeed ->createElement('link', 'http://www.myhp.edu') ); $echannel->appendChild( $dfeed ->createElement('description', 'my RSS demo') ); $echannel->appendChild( $dfeed ->createElement('language', 'en') ); $echannel->appendChild( $dfeed ->createElement('pubDate', date('r')) ); // Добавление к узлу <channel> 2 узлов <item> for ( $i = 1; $i <= 2; $i++ ) { $eitem = $dfeed->createElement('item'); $echannel->appendChild($eitem); // Создание дочерних элементов для <item> $eitem->appendChild( $dfeed->createElement('title', 'Item'.$i) ); $eitem->appendChild( $dfeed->createElement('link', 'http://www.myhp.edu/rss/'.$i.'.xml') ); $eitem->appendChild( $dfeed->createElement('description', 'Description for '.$i.' item') ); } // Сохранение документа в файле demo.rss $dfeed->save('demo.rss'); ?>
30.1. - Созданный файл разместите на веб-сервере, настройте права доступа (право на запись) для веб-сервера к директории, в которой размещается сценарий, либо к специальной директории, в которой будет создан файл demo.rss (это более безопасно).
- Выполните сценарий по запросу с веб-браузера.
- В результате выполнения сценария получится следующий документ:
В результате выполнения сценария получится следующий документ:
<?xml version="1.0" encoding="utf-8" ?> <rss version="2.0"> <channel> <title>RSS-channel title</title> <link>http://www.myhp.edu</link> <description>my RSS demo</description> <language>en</language> <pubDate>Thu, 06 Nov 2008 01:50:53 +0300</pubDate> <item> <title>Item1</title> <link>http://www.myhp.edu/rss/1.xml</link> <description>Description for 1 item</description> </item> <item> <title>Item2</title> <link>http://www.myhp.edu/rss/2.xml</link> <description>Description for 2 item</description> </item> </channel> </rss>
2.Чтение RSS документа с помощью PHP сценария и с использованием интерфейса DOM XML.
- Подготовьте файл, содержащий сценарий на языке PHP:
<?php // Загрузка документа $dfeed = DOMDocument::load('demo.rss'); // Чтение элемента <channel> $echannel = $dfeed->firstChild->firstChild; // Чтение первого дочернего элемента узла <channel> т.е.< title> $cchild = $echannel->firstChild; // Вывод содержимого дочерних элементов узла <channel> до элемента <item>: print "<strong><br>"; while ( $cchild->tagName != 'item' ) { print $cchild->nodeValue. "<br>"; $cchild = $cchild->nextSibling; } print "</strong><br>"; // Получение списка узлов <item> $litems = $echannel->getElementsByTagName('item'); print "<br>"; foreach ( $litems as $eitem ) { $title = $eitem->firstChild->nodeValue; $link = $eitem->firstChild->nextSibling->nodeValue; $descr = $eitem->lastChild->nodeValue; print "<a href=".$link.">".$title."</a> :: ".$descr."<br>"; } print "<br>"; ?>
В методе load() в качестве параметра укажите путь к RSS-файлу.
- Созданный файл разместите на веб-сервере, настройте права доступа (право на запись) для веб-сервера к директории, в которой размещается сценарий, либо к специальной директории, в которой будет создан файл demo.rss (это более безопасно).
- Выполните сценарий по запросу с веб-браузера.
- Результат должен выглядеть следующим образом:
Контрольное задание
Разработайте PHP-сценарий, генерирующий RSS документ, содержащий описание веб-страниц на вашем локальном веб-сайте. В качестве источника информации для сценария можно использовать либо заранее подготовленный текстовый файл, либо функции PHP из библиотеки для работы с файловой системой (см., например: http://www.softtime.ru/bookphp/help.php)