Спонсор: Microsoft
Воронежский государственный университет
Опубликован: 04.02.2009 | Доступ: свободный | Студентов: 8253 / 690 | Оценка: 4.14 / 3.78 | Длительность: 19:54:00
Самостоятельная работа 16:

Примеры разработки RSS-источников и RSS-ридеров

< Лекция 14 || Самостоятельная работа 16: 12 || Лекция 15 >

Публикация RSS файла

Создание RSS потока не ограничивается разработкой RSS документа. Необходимо еще опубликовать этот файл. Для этого потребуется выполнить следующую последовательность действий:

  1. Выбрать подходящее название для RSS файла. Расширение должно быть .xml.
  2. Проверить RSS файл на правильность с помощью подходящей программы-валидатора, например, взятой по адресу http://www.feedvalidator.org.
  3. Разместить RSS файл в подходящем веб-каталоге веб-сервера.
  4. Скопировать одну из "кнопок":илив веб-каталог.
  5. Вставить выбранную "кнопку" на исходящую страницу RSS потока в виде гиперссылки на RSS файл, например:
    <a href = "www.myhp.edu/rss/myrss.xml">
    < img src="http://www.myhp.edu/rss/rss.gif" width="35" height="15">
    </a>
  6. Разместить созданный RSS поток в популярных Каталогах RSS потоков, при этом URL потока должен ссылаться именно на сам XML файл потока, т.е. http://www.myhp.edu/rss/myrss.xml.
  7. Можно также зарегистрировать поток в популярных поисковых системах, например:
  8. Периодическое обновление потока.

В принципе, можно самостоятельно заниматься формированием данных в соответствующем формате RSS для работы потока. Однако имеются достаточно удобные высокоуровневые средства для автоматизации данной работы. Например:

Для чтения RSS потоков используются специальные программы чтения – RSS ридеры. Некоторые из браузеров имеют встроенные RSS ридеры. В частности, веб-браузер MS Internet Explorer 7 может интерпретировать XML файлы RSS потоков и корректно их отображать.

Добавление RSS-канала с помощью Microsoft Internet Explorer версии 7

При использовании MS Internet Explorer версии 7 и Office Outlook 2007 можно добавлять и просматривать RSS-каналы с помощью любой из этих программ.

  1. При просмотре веб-страницы, содержащей RSS, в Internet Explorer рядом с кнопкой( Домашняя страница) отображается кнопка.
  2. Нажмите кнопку.
  3. На веб-странице отобразится список доступных RSS-каналов.
  4. Выберите RSS-канал, который необходимо добавить.

Можно также нажать кнопки,или, расположенные на веб-странице.

Порядок выполнения лабораторной работы

1. Cоздания RSS документа с помощью PHP сценария и с использованием интерфейса DOM XML.

  1. Подготовьте файл, содержащий сценарий на языке 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.
  2. Созданный файл разместите на веб-сервере, настройте права доступа (право на запись) для веб-сервера к директории, в которой размещается сценарий, либо к специальной директории, в которой будет создан файл demo.rss (это более безопасно).
  3. Выполните сценарий по запросу с веб-браузера.
  4. В результате выполнения сценария получится следующий документ:

    В результате выполнения сценария получится следующий документ:

    <?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.

  1. Подготовьте файл, содержащий сценарий на языке 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-файлу.

  2. Созданный файл разместите на веб-сервере, настройте права доступа (право на запись) для веб-сервера к директории, в которой размещается сценарий, либо к специальной директории, в которой будет создан файл demo.rss (это более безопасно).
  3. Выполните сценарий по запросу с веб-браузера.
  4. Результат должен выглядеть следующим образом:

Контрольное задание

Разработайте PHP-сценарий, генерирующий RSS документ, содержащий описание веб-страниц на вашем локальном веб-сайте. В качестве источника информации для сценария можно использовать либо заранее подготовленный текстовый файл, либо функции PHP из библиотеки для работы с файловой системой (см., например: http://www.softtime.ru/bookphp/help.php)

< Лекция 14 || Самостоятельная работа 16: 12 || Лекция 15 >
Михаил Олифиренко
Михаил Олифиренко
Александр Табачук
Александр Табачук

Это только у меня не работает кнопочка "Получить код DreamSpark"? Пишет "временно не доступно..." А когда заработает?