Пример генерации фида RSS 2.0 на PHP, полную спецификацию можно посмотреть на validator.w3.org.
rss.php
<?php
// Подключение к ДБ.
$dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль');
$out = '<?xml version="1.0"?>';
$out .= '<rss version="2.0">';
$out .= '<channel>';
$out .= '<title>Название канала</title>';
$out .= '<description>Описание канала</description>';
$out .= '<link>http://site.ru</link>';
$out .= '
<image>
<url>http://site.ru/logo.jpg</url>
<title>Название канала</title>
<link>http://site.ru</link>
</image>';
// Получение и вывод статей из БД.
$sth = $dbh->prepare("SELECT * FROM `articles`");
$sth->execute();
$articles = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($data as $row) {
$out .= '
<item>
<title>' . $row['name'] . '</title>
<link>http://site.ru/articles/' . $row['id'] . '.html</link>
<description><![CDATA[' . $row['text'])) . ']]></description>
<category>' . $row['category'] . '</category>
<guid>' . $row['id'] . '</guid>
<pubDate>' . date(DATE_RFC822, $row['date_add']) . '</pubDate>
</item>';
}
$out .= '</channel>';
$out .= '</rss>';
header('Content-Type: text/xml; charset=utf-8');
echo $out;
exit();
Результат
<rss version="2.0">
<channel>
<title>Название канала</title>
<description>Описание канала</description>
<link>http://site.ru</link>
<image>
<url>http://site.ru/logo.jpg</url>
<title>Название канала</title>
<link>http://site.ru</link>
</image>
<item>
<title>RSS Tutorial</title>
<link>http://site.ru/articles/5</link>
<description>
<![CDATA[
<p>New RSS tutorial on Snipp.ru</p>
]]>
</description>
<category>PHP</category>
<guid>5</guid>
<pubDate>Thu, 08 Sep 16 17:00:00 +0300</pubDate>
</item>
</channel>
</rss>
Перенаправление с .php на .xml
Чтобы php-скрипт открывался по адресу http://site.ru/rss.xml
, в .htaccess нужно добавить запись: