Наверх
Логотип кафедры РКС УИПА
08:07
29.03.2024
Пятница
Доброе утро, Гость

Вход
Регистрация
   

RSS. Что это? Для чего это? Как это сделать?

Итак, что же такое RSS? Самый простой способ понять, что это - спросить у Википедии. 

Находим там вот такой ответ.

RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами.

В разных версиях аббревиатура RSS имела разные расшифровки:
Rich Site Summary (RSS 0.9x) — обогащённая сводка сайта;
RDF Site Summary (RSS 0.9 и 1.0) — сводка сайта с применением инфраструктуры описания ресурсов;
Really Simple Syndication (RSS 2.x) — очень простой сбор сводной информации.

Будем придерживаться последней расшифровки. Получается, что RSS - это ну Ооочень простой сбор сводной информации.

Зачем же нужен этот сбор для сайта? А нужен он для того, чтобы посетители сайта могли подписаться на новостную ленту в формате RSS и получать уведомления о всех обновлениях, произошедших на сайте не заходя при этом на сайт. При этом Пользователи смогут переходить по ссылке новости и прочитать ее целеком при желании, что уменьшает количество "отказов" (практически мгновенное закрытие страницы без дальнейших переходов) при посещении сайта, которые учитываются поисковиками, в частности Google.

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

Итак, вроде бы с преимуществами разобрались. Перейдем от теории к практике.

Что же нужно, чтобы создать свою новостную ленту для своего любимого сайта?

1. Знать структуру XML+RSS документа.

2. Знать HTML+PHP.

Первое можно поглядеть вот здесь на родном английском или вот тут на заграничном русском. 

И выбрал для себя вот такую минимальную стуруктуру xml+rss документа:

< ?xml version="1.0" encoding="UTF-8" ? >
< rss version="2.0" >
    < channel >
        < title >Название Вашей ленты новостей< /title >
        < link >Ссылка на Ваш сайта< /link >
        < description > Краткое описание новостной ленты< /description >
        < language >Язык ленты< /language >
        < lastBuildDate >Дата последнего изменения Ленты новостей< /lastBuildDate >
        < webMaster >Мыло веб-мастера сайта< /webMaster >
        < copyright >Копирайт, он и в Африке копирайт< /copyright >
        < image >
            < url >Ссылка на логотип Вашего сайта
            < link >Ссылка на Ваш сайт
            < title >Название Вашего сайта
        < /image >
        < item >
            < title >Заголовок новости< /title >
            < link link >Ссылка на полную новость< /link >
            < description >Краткое описание новости< /description >
            < pubDate >Дата публикации новости< /pubDate >
       < /item >
    < /channel >
< /rss >

Я думаю из комментариев все ясно, поясню только непонятные на первый взгляд моменты.

1. Язык ленты - соответствует доменной зоне. Русский - ru.

2. Дата последнего изменения Ленты новостей и Дата публикации новости

Дата и время в RSS соответствуют спецификации RFC 822, за исключением того, что год может представляться двумя или четырьмя цифрами (последнее предпочтительно). Пример: "Sat, 07 Sep 2002 00:00:01 GMT".

Для генирации Даты последнего изменения ленты я использую php функцию date("r"). А для генирации Даты публикации новости при получении даты из базы использую функцию mysql DATE_FORMAT(data, '%a, %d %b %Y %T'), добавив к нему при выводе функцию php date('T'), чтобы получить временнУю зону, в которой находтся сервер.

3. В Кратком описании новости можно использовать html теги для форматирования, но при этом специальные символы нужно преобразовывать в html-сущьности. Это можно сделать с помощью php функции htmlspecialchars("html-text").

Ну, вот собственно и все особенности, о которых я хотел рассказать.

В итоге у меня получился вот такой простенький php код, который формирует новостную ленту сайта, на котором Вы сейчас находитесь.

< ?php
    include "config.php"; // Настройки подключения к базе данных
    $query="select date_format(data, \"%a, %d %b %Y %T\") as Pubdata, newDescribe, newTitle, newLink from articles order by data desc";
    $res=mysql_query($query) or die ("< center >< b >ERROR: " . $query . "< /b >< /center >");
    header("Content-Type: application/rss+xml; charset=utf8");//Говорим, что мы - RSS_XML
    print"
        < ?xml version=\"1.0\" encoding=\"UTF-8\" ? >
        < rss version=\"2.0\" >
            < channel >
                < title>Лента новостей сайта< /title >
                < link>http://rks.kh.ua< /link >
                < description>Лента новотей нашего любимого сайта< /description >
                < language>ru< /language >
                < lastBuildDate>".date("r")."< /lastBuildDate >
                < webMaster>info@rks.kh.ua< /webMaster >
                < copyright>Кафедра РКС, 2012< /copyright >
                < image >
                    < url >http://rks.kh.ua/img/logo/8f14e45fceea167a5a36dedd4bea2543.gif< /url >
                    < link >http://rks.kh.ua< /link >
                    < title >Официальный сайт кафедры Радиоэлектроники и компьютерных систем УИПА< /title >
              < /image >
    ";
    if($res) while($row = mysql_fetch_assoc($res))
    {
         print"

             < item >
                 < title >".htmlspecialchars($row[\"newTitle\"])."< /title >
                 < link >http://rks.kh.ua/articles/".$row[\"newLink\"]."< /link >
                 < description >". htmlspecialchars($row[\"newDescribe\"])."< /description >
                 < pubDate >".$row[\"Pubdata\"]. " ". date("T").)."< /pubDate >
             < /item >
         ";
     }
     print"
             < /channel >
         < /rss >
     ";
? >

Осталось указать в коде вашей странички, путь к вашему RSS+XML файлу.

Делается это одной строкой в секции

странички:

< link rel="alternate" type="application/rss+xml" href="./rss2_0.php" title="Лента новостей кафедры РКС УИПА" />

В итоге получается вот такая красивая лента новостей Вашего сайта:

В Opera

 

В FireFox

 

В Internet Explorer

Теперь можете смело добавлять кнопочку "Подписаться на RSS -рассылку" на свой сайт. Подписываемся на новости нашего сайта, чтобы быть в курсе последних событий нашей кафедры =)Подписаться на RSS -рассылку


Рубрика: Web programming

Авторы: Коваленко Н.А.
Опубликовано: 05.02.12 09:40

Н р а в и т с я ?    Р а с с к а ж и    Д р у з ь я м !

Сдесь должны появиться кнопки социальных сетей

Комментарии могут оставлять только зарегистрированные пользователи.
Войдите под своим логином, чтобы оставить комментарий.


kosmos
Студент
Нет фото


Попробую начальству предложить, на их сайт сделать, хорошее дело:=\)

Опубликовано: 06.02.12 13:42:31

vasutin
Студент
Нет фото


Давно пользуюсь RSS. Это удобно.

Подписался.

Опубликовано: 05.02.12 06:04:42

   
  Случайное фото  
 
     
  Популярные статьи  
Ускоряем 3G интернет. 3G Антенна своими рукамиОпрос студентов кафедры РКС. Отзывы студентов об УИПА (Видео)Поздравляем с Днем Рождения!!!Стенгазеты студентов кафедры к празднику 8 марта 2012 годаПравила поведения в общественных местах. Административные правонарушенияВыставка морских раковин "Планета Океан" в галерее "АВЭК"Светодиодная цветомузыка для компьютераБугущая строка на базе микроконтролера ATmega48. Made by Hunter & Kosmos
     
Loading
  Полезные ссылки  
  • Официальный сайт УИПА
  • Сайт Библиотеки УИПА
  • Дистанционное обучение
  • Сервисный Центр FreshIT
  • Веб-студия Around
  • СТО Новые Дома "Алекс Сервис" Харьков
  • Заправка картриджей Харьков
  • Ремонт телефонов Холодная гора
  •      
    Система Orphus



    Tips&Tricks
    Web programming
    Жизнь студентов
    Интересные факты
    Мероприятия
    Молодые ученые
    Общежитие
    Объявления
    Свободный софт
    Технический раздел
    Компьютерные системы и сети
    Телекоммуникации и связь
    Преподаватели кафедры
    Трудоустройство
    Дни открытых дверей
    Copyright © 2010 - 2024. created by nick