ОБСУДИТЬ ПРОЕКТ
EN RU
Контакты
Напишите нам

Спасибо, что обратились к нам!

Ваше сообщение отправлено и в ближайшее время мы его рассмотрим и постараемся ответить

Создание генератора RSS лент

Во время разработки одного из заказов (известие о его окончании и подробный список правок скоро будет опубликован) нам была поставлена задача генерации RSS лент для разных типов объектов самописной CMS заказчика. После раздумий и анализа приводимых в Интернете материалов задача была выполнена.
Создание генератора RSS лент
Во время разработки одного из заказов (известие о его окончании и подробный список правок скоро будет опубликован) нам была поставлена задача генерации RSS лент для разных типов объектов самописной CMS заказчика. После раздумий и анализа приводимых в Интернете материалов задача была выполнена.

Во время разработки одного из заказов (известие о его окончании и подробный список правок скоро будет опубликован) нам была поставлена задача генерации RSS лент для разных типов объектов самописной CMS заказчика. После раздумий и анализа приводимых в Интернете материалов задача была выполнена :-)

Итак, каким же образом можно генерировать RSS ленты там, где отсутствуют готовые RSS генераторы?

На самом деле, все достаточно просто. RSS лента — это файл XML, приведенный к определенному стандарту, распознаваемому браузерами, программами-читалками лент и прочими приблудами :-) Этот файл, как и любой другой можно генерировать средствами PHP и наполнять данными из MySQL.

Структура файла имеет следующий вид:


<?xml version="1.0" encoding="windows-1251"?>
 <rss version="2.0">
 <channel>
 <title>RSS Название_сайта</title>
 <link>Адрес_сайта</link>
 <description>Описание_канала</description>
 <pubDate>Дата_ленты</pubDate>
 <lastBuildDate>Дата_ленты_еще_раз:)</lastBuildDate>
 <generator>Название нашего скрипта</generator>
 <copyright>Copyright год название сайта</copyright>
 <managingEditor>контактный_адрес_сайта</managingEditor>
 <webMaster>контактный_адрес_вебмастера_сайта</webMaster>
 <language>ru</language>
 <image>
 <url>адрес_логотипа_сайта</url>
 <title><![CDATA[Название_сайта]]></title>
 <link>адрес сайта/</link>
 </image>
 <item>
    <title>название_заголовка_новости_1</title>
    <description><![CDATA[текст_новости_1]]></description>
    <link>ссылка_на_новость_1</link>
    <guid isPermaLink="true">еще_раз_ссылка_на_новость_1</guid>
    <pubDate>дата_новости_1</pubDate>
 </item>
 <item>
    <title>название_заголовка_новости_N</title>
    <description><![CDATA[текст_новости_N]]></description>
    <link>ссылка_на_новость_N</link>
    <guid isPermaLink="true">еще_раз_ссылка_на_новость_N</guid>
    <pubDate>дата_новости_N</pubDate>
 </item>

</channel> </rss>

Как видите, структура ленты достаточно простая и понятная. Достаточно правильно написать шапку и концовку и в цикле сгенерировать <item></item> чтобы все работало. Из подводных камней необходимо обратить внимание на формат дат в RSS лентах.
Для приведения дат в лентах к правильному формату необходимо выполнять преобразование
$pubDate = date(DATE_FORMAT_RFC822, $source_date); где $source_date — дата в формате UNIX_TIMESTAMP.

Соответственно, если необходимо получить даты из базы данных MySQL и подставить их в ленту, в текст SQL запроса необходимо включить конструкцию UNIX_TIMESTAMP(struct.date) AS source_date, где struct.date — поле в таблице.

Линки по теме:

  • http://www.webmagazine.biz/articles/rss-2-0-lenta-na-php-5.html
  • http://www.internet-technologies.ru/articles/article_358.html
  • http://ru.wikipedia.org/wiki/RSS
  • http://cyber.law.harvard.edu/rss/rss.html

Как всегда, буду рад ответить на возникающие вопросы трудящихся по e-mail [email protected]

гарантии

гарантии

  • 10 лет на международном рынке
  • Внутренние стандарты качества
  • AGILE - методики планирования разработки
  • Передовые методики управления проектами с помощью JIRA
  • Налаженный производственный цикл от планирования и прототипирования до ручного и автоматического тестирования
посмотреть сертификаты отзывы наших клиентов
ГЛАВНОЕ В УСПЕШНОМ ИНТЕРНЕТ-ПРОЕКТЕ
это подобрать надежного и профессионального подрядчика с полным циклом услуг
заполнить бриф