Best-club - портал хорошего настроения!
→◊ Библиотека ◊←
Меню сайта
  • Драмы
  • Ужасы
  • Фэнтези
  • Боевики
  • Мистика
  • Комедии
  • Триллеры
  • Мелодрамы
  • Фантастика
  • Мультфильмы
  • Приключения
  • Связь с админом
  • Список пользователей
  • Полная статистика сайта
  • ТОП наград
  • Переводчик
  • Конвертер величин
  • Проверка правописания
  • Раздача ICQ
  • Оставить отзыв о сайте
  • Раскрутка сайтов

  • Поиск по сайту
    Введите ключевое слово
    для поиска



    Статистика сайта




    ProfiSmart TOP webgari.com Рейтинг сайтов

    Каталог сайтов

    bodr_top
    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Зарегистрировано:
    Всего: 1117
    Парней: 1070
    Девушек: 47
    Последний: molodoo

    Облако тегов
    Важная информация
    Главная » Статьи » Wap/Web Мастеру » PHP, Perl, ASP

    Rss 2.0 лента на PHP
    RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами. Обычно с помощью RSS 2.0 даётся краткое описание новой информации, появившейся на сайте, и ссылка на её полную версию. Интернет-ресурс в формате RSS называется RSS-каналом или RSS-лентой или RSS-фидом. Практически все популярные современные браузеры поддерживают RSS каналы: Safari, Maxthon, Mozilla Firefox, Mozilla Thunderbird, Opera, Microsoft Internet Explorer начиная с 7-й версии. Я не буду останавливаться на истории формата, скажу лишь что существуют версии 0.91, 1.0 и 2.0, причем не совместимые между собой. Крайне не рекомендую вам использовать версию 0.91, потому что умная Netscape 5 января 2006 года удалила с сайта my.netscape.com файл rss-0.91.dtd, ссылки на который были размещены в большом количестве трансляций формата RSS версии 0.91. Это событие привело к сбою некоторых онлайновых и офлайновых агрегаторов, так как потоки, ссылающиеся на этот DTD стали невалидными. Мы же рассмотрим самый последний формат на момент написания этой статьи - RSS 2.0.
    Пример формата RSS 2.0 и описание тегов

    По своей сути RSS напоминает обычный XML файл:

    <rss version="2.0">

      <channel>
      <title>My News</title>
      <link>http://mysite.com/</link>;
      <description>News from my family.</description>

      <language>en-us</language>
      <pubDate>Tue, 10 Jun 2006 04:00:00 GMT</pubDate>
       
      <lastBuildDate>Tue, 10 Jun 2006 09:41:01 GMT</lastBuildDate>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs>;

      <generator>Weblog Editor 2.0</generator>
      <managingEditor>editor@mysite.com<;/managingEditor>
      <webMaster>webmaster@mysite.com<;/webMaster>
       
      <item>

      <title>My Birthday</title>
      <link>http://mysite.com/blog/2006/mybirthday.php</link>;
      <description>I celebrate my birthday today!</description>
      <pubDate>Tue, 01 Jun 2006 09:39:21 GMT</pubDate>

      <guid>http://mysite.com/blog/2006/06/01.html#item1</guid>;
      </item>

      <item>
      <title>My new PC</title>

      <link>http://mysite.com/blog/2006/mynewpc.php</link>;
      <description>I want to buy new PC.</description>
      <pubDate>Tue, 27 May 2006 08:37:32 GMT</pubDate>
      <guid>http://mysite.com/blog/2006/05/27.html#item1</guid>;

      </item>
      </channel>
    </rss>Обязательные элементы канала
    title Имя RSS канала. Оно например может совпадать с названием сайта.
    description Краткое описание RSS канала.
    link Ссылка на сайт, с которым связан канал.
    Необязательные элементы канала (channel)
    language Язык канала (en-us - Английский; ru - Русский).
    copyright Сведения об авторстве на RSS канал.
    managingEditor Email адрес ответственного за контент канала.
    webMaster Email адрес ответственного за техническую часть публикации канала.
    pubDate Дата публикации канала, в соответствии с Date and Time Specification of RFC 822.
    lastBuildDate Время последней модификации канала в соответствии с Date and Time Specification of RFC 822.
    category Одна или несколько категорий, к которым принадлежит канал.
    generator Название программы, использованной для генерирования RSS канала.
    docs Ссылка на файл документации подвида RSS, который был использован для создания канала.
    ttl Ttl расшифровывается как ‘time to live’. Это число минут, в течение которых канал сохраняет свою актуальность.
    image Используется для подключения графического файла (GIF, JPEG, или PNG), который будет показан вместе с RSS каналом. Имеет следующие параметры:
    title - обычно тот же текст, что и в RSS title;
    description - описание графического файла, которое будет показано, если файл не доступен;
    link - ссылка на страницу, с которой связан канал;
    url - URL на файл формата JPEG, GIF или PNG, который связан с RSS каналом;
    width - ширина рисунка.
    height - высота рисунка.
    skipHours Число часов, в течение которых RSS ридеры могут не проверять канал на обновления.
    skipDays Число дней, в течение которых RSS ридеры могут не проверять канал на обновления.
    Обязательные элементы итема (item)
    title Имя итема (новости, сообщения) RSS канала.
    description Краткое описание итема.
    link ссылка на страницу, содержащую полное описание события.
    Необязательные элементы итема (item)
    author Email адрес автора сообщения.
    category Категория итема.
    comments Ссылка на страницу с комментариями по итему.
    enclosure Описывает медиа-объект, присоединенный к итему. Имеет следующие параметры:
    url - ссылка на файл объекта;
    length - размер файла в байтах;
    type - тип файла, в соответствии со спецификацией MIME.
    guid Уникальная строка, используемая для идетификации итема.
    pubDate Дата публикации итема, в соответствии с Date and Time Specification of RFC 822.


    Конечно же тут приведены не все теги стандарта RSS, но я вас уверяю что этого больше чем достаточно для создания фида, ну а для особо интересующихся дам ссылку на спецификацию RSS 2.0.
    Реализация на PHP 5

    Я не стал городить классы и шаблоны, а сделал все достаточно прямолинейно:
    // Задаем формат даты
    define('DATE_FORMAT_RFC822','r');
    // Сообщяем браузеру что передаем XML
    header("Content-type: text/xml; charset=windows-1251");

    // Дата последней сборки фида
    $lastBuildDate=date(DATE_FORMAT_RFC822);

    echo <<

    <rss version="2.0">
    <channel>
      <title>mysite.com RSSFeed</title>
      <link>http://mysite.com</link>;
      <description>Мой супер блог</description>

      <pubDate>$lastBuildDate</pubDate>
      <lastBuildDate>$lastBuildDate</lastBuildDate>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs>;
      <generator>Weblog Editor 2.0</generator>

      <copyright>Copyright 2006 mysite.com</copyright>
    <managingEditor>editor@mysite.com<;/managingEditor>
      <webMaster>webmaster@mysite.com<;/webMaster>
      <language>ru</language>

    END;

    // В этом файле надо разместить подключение к базе данных
    include_once("db.php");

    // Модифицируйте запрос под вашу таблицу
    $query = "SELECT name, anon, url, UNIX_TIMESTAMP(date) as pubdate 
      FROM news
      WHERE visible=1
      ORDER by date desc
      LIMIT 0,10";

    $res = mysql_query($query);
    while ($row=mysql_fetch_array($res)) {
    // Убираем из тайтла html теги и лишние пробелы
    $title = strip_tags(trim($row['name']));
    // С аноносом можно не проводить такие 
    // манипуляции, т.к. мы вставим его в блок CDATA
    $anon = $row['annonce'];
    $url = $row['uri'];
    $pubDate = date(DATE_FORMAT_RFC822, $row['pubdate']);
    echo <<<END
      <item>
      <title>$title</title>

      <description><![CDATA[$anon]]></description>
      <link>http://mysite.com/news/$url</link>;
      <guid isPermaLink="true">http://mysite.com/news/$url</guid>;
      <pubDate>$pubDate</pubDate>

      </item>
    END;
    }

    echo <<<END
    </channel>
    </rss>
    END;
    ?>

    Как видите все получилось довольно просто. Чтобы увидеть результат можно просто ввести в браузере Opera 9 адрес фида: http://mysite.com/rssfeed.php. Также можно сообщить браузеру о существовании фида, добавив в блок <head> страниц вашего сайта строку:
    <link rel="alternate" type="application/rss+xml" title="RSS" href="http://mysite.com/rssfeed.php" />  

    Категория: PHP, Perl, ASP | Добавил: Admin | Дата: 06.09.2009 | Просмотры: 936 | Рейтинг:
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Вход на сайт
    Гость, добро пожаловать на best-club! Тапки в углу, пиво в холодильнике. Располагайся:) Для получения большего комфорта войди как пользователь или зарегистрируйся.



    Обмен музыкой [?]
    Открыть в новом окне

    Партнёры





    Опрос

    Какой у Вас возраст?
    Всего ответов: 42

     
    Best-club team © 2008 - 2024

    SiteMap Партнёры и друзья Поддержать проект
    Третий Мир: Война Королей - Форум
    Администрация сайта не несёт ответственности за материалы опубликованные на сайте! Все материалы исключительно для ознакомления!
    Мини профиль