RSS канал на PHP

Пример генерации фида 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();
PHP

Результат

<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 нужно добавить запись:

RewriteEngine On
RewriteRule ^rss.xml$ rss.php [L,QSA]
18.07.2019, обновлено 20.09.2019 211

Поделится

Темы

PHP XML

Другие публикации

Пример создания файла карты сайта (sitemap.xml) на PHP. Интеграция его на сайт и подключение его в robots.txt
19.11.2016 2035
В статье представлены все самые встречающеюся мета-теги с примерами и пояснениями их использования.
17.01.2018 2657
Описание значений глобального массива $_SERVER с примерами.
03.10.2018 1190
date($format, $timestamp) – форматирует дату/время по шаблону, где...
28.06.2019 472
Ниже приведён список MIME-заголовков и расширений файлов.
11.07.2019 305
Несколько примеров как в PHP получить информацию о домене и IP-адресе.
10.04.2019 674