В этом небольшом уроке мы будем создавать свою собственную RSS ленту средствами PHP. С помощью этой ленты можно облегчить себе и окружающим поисковым роботам жизнь. Все файлы будут браться из базы данных и превращаться в список с пунктами.
В предыдущей статье вывод новостей RSS с помощью PHP мы уже показывали взаимодействия с лентой.
На текущий момент самая актуальная версия RSS является версией 2.0, на это и будем опираться. Пример готового решения можно увидеть, посмотрев на наш rss поток. Давайте рассмотрим исходный код xml файла:
<?xml version="1.0"?> <rss version="2.0"> <channel> <title>Название ленты</title> <link>Ссылка на ваш проект</link> <description>Описание 200 символов.</description> <item> <title>Название добавленной новости</title> <link>Прямая ссылка на новость</link> <description>Описание новости (небольшое)</description> <author>Имя автора записи</author> <pubDate>Дата новости</pubDate> </item> ... <item> <title>Название добавленной новости</title> <link>Прямая ссылка на новость</link> <description>Описание новости (небольшое)</description> <author>Имя автора записи</author> <pubDate>Дата новости</pubDate> </item> </channel> </rss>
При этом свойств одного материала очень много, все данные предоставлены ниже.
Обязательные элементы channel:
title — название rss потока.
description — небольшое описание проекта.
link — прямая ссылка на главную страницу канала.
Необязательные элементы channel:
language — язык канала. Большинство современных ретрансляторов автоматический определяют данный элемент.
copyright — авторский копирайт.
managingEditor — email пользователя, который отвечает за данный канал.
webMaster — email технической поддержки по данной ленте.
pubDate — дата создания канала (RFC 822).
lastBuildDate — время последнего изменения (RFC 822).
category — как понятно из названия категория канала (можно указать несколько).
generator — программа с помощью, которой вы создали ленту.
docs — документы по использованию вашего канала.
ttl — time to live определяет через какой промежуток времени лента потеряет актуальность.
image — изображение отвечающее за \»дизайн\» ленты.
skipHours — количество часов запрещающее ридерам проверят ленту.
skipDays — количество дней запрещающее ридерам проверят ленту.
Обязательные элементы item:
title — имя новости или сообщения.
description — небольшое описание item.
link — ссылка на страницу с полным описанием.
Необязательные элементы item:
author — email автора.
category — категория item
comments — ссылку на страницу, где можно обсудить новость.
enclosure — Медиа-объект который бил прикреплён к новости.
guid — уникальный текст которые не вкоем случае не должен повторяться (можно использовать ссылку на страницу или ID новости).
pubDate — дата создания item (RFC 822).
После того как вы узнали, какие параметры вам необходимы приступим к созданию самой ленты. Для этого создадим в главной директории файл rss.php и запишем в него следующий текст
<?php echo '<?xml version="1.0"?> <rss version="2.0"> <channel> <title>Название RSS-потока</title> <link>Ссылка на ваш проект</link> <copyright>Сделано при поддержке mentor.ru</copyright> <description>Краткое описание </description>'; $result=MYSQL_QUERY("SELECT id, title, text, date, author, link FROM article ORDER BY date DESC LIMIT 20"); while ($row=MYSQL_FETCH_ARRAY($result)) { $id=$row['id']; $title=$row['title']; $text=$row['text']; $date=$row['date']; $link=$row['link']; $author=$row['author']; echo '<item> <title>$title</title> <link>$link</link> <description>$text</description> <author>$author</author> <pubDate>$date</pubDate> <guid>$link</guid> </item>'; } echo '</channel> </rss>'; ?>
Теперь необходимо зайти в свою базу данных, используя phpmyadmin или другой клиент, и посмотреть заголовки таблицы, которая отвечает за вывод материалов с сайта. После чего, отредактировать rss.php. Как только вы закончите работу, и у вас будет полностью рабочая лента, её необходимо подключить к проекту, для этого нужно открыть исходный код и в раздел head написать следующий текст:
<head> ... <link rel="alternate" type="application/rss+xml" title="RSS-канал" href="ваш-сайт.ру/rss.php" /> ... </head>
Если посмотреть на это со стороны, реализация ленты не такое уж и сложное занятие. Если уделить этому несколько минут своего времени, можно склепать несколько таких потоков, и каждый из них будет отвечать за определённую категорию или раздел. Во многих популярных CMS эта технология уже применяется.
Здравствйте! Спасибо за информацию, очень помогла