Блог специалистов
07.09.2011

Как создать RSS ленту из базы данных MySQL

Иногда требуется создать RSS-ленту на сайте, где разработчик не предусмотрел ее. На нашем примере, такая лента была сделана для бесплатной доски объявлений CMS linedmk. Пример работы скрипта вот тут.

В интернете есть много разных решений. Но я представляю Вашему вниманию скрипт почти в 1 файл. По хорошему его лучше разделить на 2 файла, один отвечающий за подключение, а второй уже с рабочим кодом.

Как и что делать:

Создаем в корне сайта файл con_db.php c данными для подключения к БД

<?php

$DB_host = "localhost"; // имя сервера MySQL

$DB_user = "dbuser"; // имя пользователя MySQL

$DB_pass = "dbpass"; // пароль на сервере MySQL

$DB_name = "dbname"; // имя базы данных

/* Соединяемся с сервером MySQL */

$db=mysql_connect($DB_host,$DB_user,$DB_pass);

/* Выбираем необходимую базу данных */

mysql_select_db($DB_name, $db);

/* Устанавливаем кодировку */

mysql_query('SET NAMES UTF-8');

Там же создаем файл, например feed_rss.php со следующим содержанием:

<?php

include "con_db.php";

/* ОБРАБОТКА ДАННЫХ И ПОСТРОЕНИЕ XML ФАЙЛА */

/* Показываем браузеру, что это xml-документ */

header("content-type:text/xml");

/* Выводим название и описание канала*/

echo "<?xml version=\"1.0\" encoding=\"windows-1251\"?>

<rss version=\"2.0\">

<channel>

<title>Название RSS-ленты</title>

<link>http://test.ru</link>

<description>Описание RSS-ленты</description>

<language>ru</language>";

/* В цикле выводим все заметки из базы данных
из таблицы articles (у Вас будет другая таблица)*/

$result=mysql_query("SELECT * FROM doska_advert ORDER BY start_putdate DESC");

if (mysql_num_rows($result) > 0){

while ($myrow = mysql_fetch_array($result)){;

echo "<item>".

"<title>".strip_tags($myrow['name_adv'])."</title>".

"<author>".strip_tags($myrow['name_user'])."</author>".

"<link>http://labinsk24.ru/board/advert".$myrow['id_advert'].".html</link>".

"<description><![CDATA[".$myrow['text']."]]></description>".

"<pubDate>".date("r",$myrow['start_putdate'])."</pubDate>".

"<guid>http://labinsk24.ru/board/advert".$myrow['id_advert'].".html</guid>".

"</item>";
}
}

echo "</channel></rss>";

?>

Всё, теперь при обращении к вашему скрипту в строке браузера, например, http://ваш_домен.ru/feed_rss.php, он будет выдавать RSS-данные.


Количество показов: 5546




Возврат к списку