Как сделать RSS-ленту (RSS-канал) для сайта
В этой теме мы рассмотрим, как на своем сайте создать простейшую, но зато свою собственную RSS-ленту.
Рассмотрим для начала простенький пример RSS-ленты, которая имеется у нас на сайте и располагается по ссылке - RSS-лента. Далее мы разберем основные её компоненты.
<?php
echo '<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>Сайт полезных скриптов UsefulScript.ru</title>
<link>http://usefulscript.ru/</link>
<description>Полезные скрипты и онлайн-сервисы</description>
<language>ru</language>
<copyright>Copyright 2011 by UsefulScript.ru</copyright>
<lastBuildDate>Sun, 26 Jun 2011 02:13:33 GMT</lastBuildDate>
<skipDays>
<day>Thursday</day>
</skipDays>
<skipHours>
<hour>22</hour>
<hour>23</hour>
</skipHours>
<item>
<title>Градиентная заливка текста</title>
<link>http://usefulscript.ru/gradient.php</link>
<description>
Градиентная заливка текста это наверно самый красивый пример оформления
текста. Однотонные тексты смотрятся гораздо более мрачными, чем переливающиеся
различными цветами. Старайтесь использовать данную радужную заливку только
для заголовков. Пример такой радужной (градиентной) заливки можно посмотреть
по ссылке - <![CDATA[<a href="http://usefulscript.ru/no_hotlink.php">
http://usefulscript.ru/gradient.php</a>]]>
Там же Вы имеется скрипт, делающий такую заливку.
</description>
</item>
<item>
<title>Вторая тема</title>
<link>Ссылка на тему</link>
<description>
Описание...
</description>
</item>
</channel>
</rss>';
?>
Как вы могли заметить, данная лента выполнена с использованием PHP кодов и следовательно файл имеет расширение .php, что не мешает ей быть RSS-каналом. Файл в формате php мы выбрали не случайно, а потому, что в данном файле можно разместить код, который будет обрабатываться на стороне сервера и не будет виден посетителям данной RSS-ленты (например, счетчик посещений).
Обязательные элементы RSS-канала | |
title | Имя RSS-канала. Имя канала, как правило, совпадает с названием сайта. |
description | Описание RSS-канала. |
link | URL сайта, с которым связан данный RSS-канал. |
Необязательные элементы RSS-канала (channel) | |
language | Язык публикации канала (ru - Русский; en-us - Английский). |
copyright | Сведения об авторстве на RSS-канал. |
managingEditor | Email адрес ответственного за содержание RSS-канала. |
webMaster | Email адрес вебмастера, отвечающего за техническую часть. |
pubDate | Дата публикации канала, в соответствии с RFC 822. |
lastBuildDate | Время последнего изменения канала в соответствии с RFC 822. |
category | Категории, к которым принадлежит канал. |
generator | Название программы, с помощью которой был сгенерирован данный RSS-канала. |
docs | Ссылка на файл документации подвида RSS, который был использован при создании канала. |
ttl | Время, в течение которого канал сохраняет свою актуальность. Время указывается в минутах. |
image | Используется для вставки графического файла (поддерживаемые расширения: GIF, JPEG, или PNG),
который будет показан вместе с RSS-каналом. Имеет следующие параметры: title - название изображения; description - описание изображения, которое будет показано, в случае, когда файл по каким-либо причинам не доступен; link - ссылка на страницу, с которой связан RSS-канал; url - URL на графический файл формата JPEG, GIF или PNG, который связан с RSS-каналом; width - ширина изображения; height - высота изображения. |
skipHours | Часы, в которые RSS-ридеры могут не проверять RSS-канал на наличие обновлений. Часы должны указываться внутри параметра hour. |
skipDays | Дни, в которые RSS-ридеры могут не проверять RSS-канал на наличие обновлений. Дни должны указываться внутри параметра day. |
Обязательные элементы итема (item) | |
title | Название итема (новости, темы) RSS-канала. |
description | Описание итема. |
link | Ссылка на страницу, содержащую полное описание указанного итема (новости, темы) RSS-канала. |
Необязательные элементы итема (item) | |
author | Email адрес автора данного итема (новости, темы). |
category | Категория итема (новости, темы). |
comments | Ссылка на страницу, содержащую комментарии по итему (новости, темы). |
enclosure | Медиа-объект, присоединенный к итему. Имеет следующие параметры: url - ссылка на файл объекта; length - размер файла в байтах; type - тип файла, в соответствии со спецификацией MIME. |
guid | Уникальная строка идентификации итема. |
pubDate | Дата публикации итема, в соответствии с RFC 822. |
Теперь Вы смело можете приступать к созданию своей собственной RSS-ленты, которая будет освещать все новости и новые темы на Вашем сайте.
Перед публикацией все комментарии проходят обязательную модерацию!
Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Наш код необходимо вставлять в новый файл с расширением php (например, rss.php), который и будет RSS-лентой.
<![CDATA[<img src="http://usefulscript.ru/image/usefulscript_logo.png">]]>
PS: Приведённый выше код некорректно отображается при обновлении страницы rss.php - почему-то вся информация дублируется.
По поводу дублирования - возможно у Вас что-то кэшируется. Только что проверил в Опере и IE - полет нормальный.
А в Опере у меня почему-то при повторном посещении этой страницы вся информация дублируется.
В чем причина может быть?
Вот ссылка ***/rss.xml
У меня блог полностью на английском языке, а в файле rss.xml дата на русском языке, и уже не в первый раз замечаю. Почему так происходит?
Заранее спасибо за ответ.