Создание собственной 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).
- <title> - в нашем случае название статьи.
- <link> - ссылка на статью.
- <description> - текст самой статьи.
На этом теоретическую часть можно закончить. О дополнительных элементах RSS-ленты можно прочитать в Спецификации RSS 2.0. Обычно все статьи хранятся в базе данных. Потому следующие этапы я опишу в общих чертах:
- Подключаемся к БД используя стандартную функцию mysql_connect();
- Получаем 10 новых статей. Примерный запрос выглядит так: mysql_query("SELECT * FROM `articles` ORDER BY `date` DESC LIMIT 0,10");
- Потом форматируем нашу RSS-ленту.
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 ленты. Подробное описание."
DeVoid |
http://devoid.com.ua/ |
22 Сентября 2007 |
Просмотрели 11517 раз
КОММЕНТАРИИ
Комментариев еще нет.
Зарегистрируйтесь или выполните Вход для того чтобы оставлять комментарии
Не менее интересно
- Измерение скорости работы скрипта
- PHP и array_map. Использование обратных вызовов массивов
- sscanf - сканирование форматированных строк в PHP
- Как узнать размер базы данных MySQL через PHP
- Получение реального IP-адреса пользователя в РНР
- Создание Rollover Image с использованием CSS
- Сжатие XHTML страниц с использованием PHP Output Buffers
- PHP-класс для работы с AlexaRank
- PHP и его история
- Как верстать сайт? Шаблонная вёрстка сайта


