Что такое RSS и как самому сделать RSS для сайта?


Если вы являетесь владельцем сайта и до сих пор не знаете, что такое RSS, то эта статья создана для вас. Мы живём в мире скоростей и огромного потока информации. Умение правильно ориентироваться в ней и уметь выбрать главное - это не очень просто. Зачастую чтобы найти нужную информацию, мы обходим кучу сайтов, пересматриваем десятки и сотни страниц, теряем много времени и трафика при этом. А ведь можно получить эту информацию напрямую в свой компьютер или на свой сайт. Для этого была разработана технология RSS. Что это такое?

RSS - это специальная категория XML формата для передачи (трансляции) анонсов новостей, статей, изменений и прочей оперативной информации с сайта. Обычно информация транслируется в укороченном виде со ссылкой на страницу первоисточника. Длина передачи устанавливается произвольно владельцем сайта. Источник называется RSS каналом, RSS фидом или RSS лентой.

В чём преимущества RSS? Во-первых, пользователь очень существенно экономит трафик и время, так как информация скачивается только самая последняя и нужная. Это очень важно, не правда ли? Зачем загружать страницу новостного портала, которая изобильно нагружена графикой, скриптами и flash анимацией, когда можно скачать всего несколько килобайт нужной информации. А теперь представьте, что вам необходимо получить самую свежую информацию с нескольких десятков сайтов. Сколько времени это займёт у вас? А с помощью RSS вы сможете получить её в единое целое в течение нескольких секунд. Во-вторых, RSS ленты можно транслировать на другие сайты, расширяя диапазон основного сайта и повышая тем самым его аудиторию.

На компьютере RSS ленты можно читать с помощью современных браузеров, которые поддерживают RSS формат. К ним относятся Mozilla Firefox, Opera и так далее. А можно использовать и специальные программы - RSS агрегаторы, которые собирают сами информацию из заданных RSS лент и предоставляют её пользователю в очень удобном виде. Как вариант можно ещё использовать и онлайн агрегаторы. Это специальные сайты, где пользователи могут также выбирать популярные RSS ленты и читать их. Как видите, выбор очень богат и эта технология стремительными темпами набирает популярность в Интернете благодаря своей оперативности и удобству. Поэтому она и называется RSS - Really Simple Syndication или По-настоящему Простое Получение Информации. В настоящее время последней версией RSS является версия RSS 2.0.

Как читать RSS вроде бы уже вам понятно, а как сделать RSS ленту у себя на сайте? Да очень просто. Необходимо создать специальную страницу в стандарте XML 1.0 и расположить её у себя на сайте. Можно рассмотреть это на примере, подразумевая, что сайт сделан на языке PHP и имеет базу данных MySQL для хранения новостей или статей.

Сначала рассмотрим структуру простого канала RSS.

<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Здесь название канала</title>
<link>Здесь ссылка на сайт http://www.oqbo.ru</link>
<description>Здесь краткое описание данного канала</description>
<lastBuildDate>Здесь дата последнего изменения в канале (RFC 2822)</lastBuildDate>

<item>
<title>Заголовок статьи1 или новости1</title>
<link>Ссылка на эту статью или новость</link>
<description>Текст статьи или новости в произвольном объёме</description>
<pubDate>Дата опубликования данной статьи или новости</pubDate>
</item>

<item>
<title>Заголовок статьи2 или новости2</title>
<link>Ссылка на эту статью или новость</link>
<description>Текст статьи или новости в произвольном объёме</description>
<pubDate>Дата опубликования данной статьи или новости</pubDate>
</item>

<item>
<title>Заголовок статьи3 или новости3</title>
<link>Ссылка на эту статью или новость</link>
<description>Текст статьи или новости в произвольном объёме</description>
<pubDate>Дата опубликования данной статьи или новости</pubDate>
</item>

</channel>
</rss>

Даты все указываются в формате RFC 2822. Если дата в вашей базе данных хранится в другом формате, то её можно конвертировать с помощью функции PHP date();

$upldt = date("r",$yourdatefromdb);
(например, 2019-09-17 конвертируется в Mon, 17 Sep 2019 00:00:01 GMT)

Файл index.php

Код:
<?php
header("content-type: application/rss+xml");
include "func.php";
echo "
<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>Название ленты</title>
<link>http://www.oqbo.ru</link>
<description>Описание ленты</description>
<language>ru</language>";

$result = dbquery("SELECT news_date FROM news ORDER BY news_date DESC LIMIT 0,1");
$data = dbarray($result);
$lnd = $data['news_date'];
$upldt = date("r",$lnd); // конвертация даты в формат RFC 2822
echo "<lastBuildDate>$upldt</lastBuildDate>
";

$result = dbquery("SELECT * FROM news ORDER BY news_id DESC LIMIT 0,10");
while ($data = dbarray($result)) {
echo "<item>
";
echo "<title>".$data['news_name']."</title>
";
echo "<link>http://www.oqbo.ru/read.php?block=".$data['news_id']."</link>
";
echo "<description>".$data['news_anons']."</description>
";

$nd = $data['news_date'];
$updt = date("r",$nd);
echo "<pubDate>$updt</pubDate>
";
echo "<guid>http://www.oqbo.ru/read.php?block=".$data['news_id']."</guid>
";
echo "</item>
";
}

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

Файл func.php - для настроек связи с базой данных БД.

Код:
<?php
// установки для связи с базой данных
$db_host=""; // localhost скорее всего
$db_user=""; // имя пользователя БД
$db_pass=""; // пароль пользователя БД
$db_name=""; // имя БД

function dbconnect($db_host, $db_user, $db_pass, $db_name) {
$db_connect = @mysql_connect($db_host, $db_user, $db_pass);
$db_select = @mysql_select_db($db_name);
if (!$db_connect) {
die("Не могу установить связь с MySQL
".mysql_errno()." : ".mysql_error()."");
} elseif (!$db_select) {
die("Не могу выбрать базу данных MySQL
".mysql_errno()." : ".mysql_error()."");
}
}

function dbquery($query) {
$result = @mysql_query($query);
if (!$result) {
echo mysql_error();
return false;
} else {
return $result;
}
}

function dbarray($query) {
$result = @mysql_fetch_assoc($query);
if (!$result) {
echo mysql_error();
return false;
} else {
return $result;
}
}

dbconnect($db_host, $db_user, $db_pass, $db_name);
?>

http://sg.uploads.ru/t/DSwNs.gif 

Вот и всё. Теперь заливаем оба файла в директорию rss, которую можно создать для этих целей. Ставим ссылку http://www.site.ru/rss/ в виде символа RSS и наша лента готова.

Теперь вы можете добавить свою ленту RSS в различные каталоги RSS лент и ждать притока посетителей с них на ваш сайт. Удачи вам. http://sg.uploads.ru/t/5QCmW.gif

[good]
Android 8.1.0, Chrome,70.0.3538.110