Как создать 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-данные.
Количество показов: 7175