Создание собственной RSS ленты. Подробное описание.

Создание собственной RSS ленты. Подробное описание.

  В этой статье мы будем создавать собственную RSS-ленту с помощью PHP и MySQL. Что бы не быть голословным, рассмотрим создание RSS-ленты на примере сайта http://devoid.com.ua. Сама RSS-лента находится здесь и содержит 10 новых статей сайта.
  Для начала немного теории без которой нельзя приступать к программированию. Итак, как гласит спецификация RSS 2.0:
  RSS - формат передачи веб-контента. Название технологии — акроним "Really Simple Syndication", то есть, "по-настоящему простая передача информации". Пример RSS-ленты можно найти здесь и здесь.
  RSS — диалект XML. Все файлы RSS обязаны соответствовать спецификации XML 1.0.
  Каждая RSS-лента в подтверждение вышесказанному должна начинаться со строк:
<?xml version="1.0" encoding="windows-1251" ?>
<rss version="2.0">
  Элементы RSS бывают обязательные и необязательные.
  В рамках теоретической части этой статьи мы рассмотрим только обязательные элементы.
Итак, для <channel> обязательными элементами являются:
  • <title> - краткое название канала. В нашем случае например: www.devoid.com.ua - портал программистов!
  • <description> - описание канала. Например: 10 новых статей сайта www.devoid.com.ua.
  • <link> - URL сайта связанного с каналом (www.devoid.com.ua).
  Каждая наша статья будет содержаться в элементе <item>, для которого обязательными являются:
  • <title> - в нашем случае название статьи.
  • <link> - ссылка на статью.
  • <description> - текст самой статьи.
Необязательными тегами которые используются на сайте http://devoid.com.ua является <pubDate> для <item>, и <img>, <copyright> для <channel>.
  На этом теоретическую часть можно закончить. О дополнительных элементах RSS-ленты можно прочитать в Спецификации RSS 2.0. Обычно все статьи хранятся в базе данных. Потому следующие этапы я опишу в общих чертах:
  • Подключаемся к БД используя стандартную функцию mysql_connect();
  • Получаем 10 новых статей. Примерный запрос выглядит так: mysql_query("SELECT * FROM `articles` ORDER BY `date` DESC LIMIT 0,10");
  • Потом форматируем нашу RSS-ленту.
Далее я привожу код в общих чертах, который формирует XML:
echo("<?xml version=\"1.0\" encoding=\"windows-1251\" ?>\r\n");
echo("<rss version=\"2.0\">\r\n");
echo("<channel>\r\n\r\n");

echo("<title>www.devoid.com.ua - портал программистов. Здесь есть все для программиста!</title>\r\n");
echo("<link>http://devoid.com.ua</link>\r\n");
echo("<description>Портал программистов - статьи, исходники, FAQ, форум, блог.</description>r\n");
echo("<copyright>Copyright 2007, devoid.com.ua</copyright>\r\n\r\n");

echo("<img>\r\n");
echo("<url>http://devoid.com.ua/design/img/button.gif</url>\r\n");
echo("<title>www.devoid.com.ua - портал программистов. Здесь есть все для программиста!</title>\r\n");
echo("<link>http://devoid.com.ua</link>\r\n");
echo("</img>\r\n\r\n");

connect_to_db(); // функция соединения с БД MySQL
$query = "SELECT * FROM `articles` ORDER BY `data` DESC LIMIT 0,10";
$res = mysql_query($query);
while($item = mysql_fetch_array($res))
{
	$descr = "";
	$descr = stripslashes($item["description"]);
	$item["title"] = htmlspecialchars($item["title"]);

	echo("\r\n<item>\r\n");
	echo("<title>".$item["title"]."</title>\r\n");
	echo("<link>".$link.".html</link>\r\n");
	echo("<description><![CDATA[".$descr."]]></description>\r\n");
	echo("<pubDate>".$item["data"]."</pubDate>\r\n");
	echo("</item>\r\n\r\n");
}
echo("</channel>\r\n");
echo("</rss>\r\n");
  Код сам по себе не сложный, но есть определенные моменты, которые требуют рассмотрения:
  • сначала формируем "хедер" нашего файла, где указываем версию RSS и XML.
  • Далее заполняем обязательные элементы <channel> и в цикле, выводим все элементы <item>, динамически заполняя нужные элементы.
  • Перед выводом текста статьи, применяя к нему функцию stripslashes().
  • К названию статьи применяем функцию htmlspecialchars(), которая преобразует специальные символы в HTML сущности.
  • Для того чтобы можно было сохранять разметку гипертекста в теле статьи, нужно текст статьи добавлять в таком виде <![CDATA[".$descr."]]>.
Этого материала достаточно для того чтобы научиться писать свои ленты RSS-новостей. В следующих статьях я напишу о том, как написать на C# Csharp RSS-ридер для чтения лент RSS с сайта http://devoid.com.ua.
  Спасибо за внимание и удачи вам в написании кода!

Информация о статье "Создание собственной RSS ленты. Подробное описание."

Автор DeVoid | Сайт http://devoid.com.ua/ | Добавлена 22 Сентября 2007 | Просмотрели 11517 раз

  • Digg it!
  • Delicious
  • +МоёМесто.ru
  • Добавить страницу к Мистеру Вонгу
  • Добавить страницу к Мистеру Вонгу

Комментарии КОММЕНТАРИИ

Комментариев еще нет.

Зарегистрируйтесь или выполните Вход для того чтобы оставлять комментарии