RSS канал на PHP

Пример генерации фида RSS 2.0 на PHP, полную спецификацию можно посмотреть на https://validator.w3.org/feed/docs/rss2.html

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>https://example.com</link>';

$out .= '
<image>
	<url>https://example.com/logo.jpg</url>
	<title>Название канала</title>
	<link>https://example.com</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://example.com/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>https://example.com</link>
		<image>
			<url>https://example.com/logo.jpg</url>
			<title>Название канала</title>
			<link>https://example.com</link>
		</image>
		<item>
			<title>RSS Tutorial</title>
			<link>https://example.com/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://example.com/rss.xml, в .htaccess нужно добавить запись:

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

Поделится

Темы

PHP XML

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

Данный скрипт получает курсы валют с сайта ЦБ на текущую дату
Ниже представлен пример кода PHP для генерации YML файла по упрошенной схеме для выгрузки на Яндекс.Маркет.
parse_url($url, $component) – стандартная функция, разбирает URL-адрес на компоненты в виде массива.