Создаем свой RSS-канал с помощью PHP

Создаем свой RSS-канал с помощью PHP

rss-lesДобрый вечер пользователи сайта red-star.pro. В сегодняшнем уроке мы будем создавать свой RSS-канал с помощью PHP и MySQL. 

Для начала рассмотрим, что такое RSS и зачем он нужен.

RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами или онлайн-сервисами.

Простой пример RSS-канала:




Название канала
Сайт</link>
Описание
Язык


<title>название</title>
ссылка на новость</link>
текст
email автора
ссылка на новость




Ладно, хватит теории, переходим к практике.

Для данного урока нам понадобится MySQL база данных с одной заполненной таблицей.
Итак, начнем.

Шаг 1. Создаем документ

Первым шагом нам нужно создать документ с расширением .php. Я назвал созданный файл rss.php. Данный файл должен быть пустым, не должно быть ни одной строчки кода.

Шаг 2. База данных

В этом шаге нам нужно соединение с базой данных, в которой находится таблица с новостями. Если нет таблицы в БД, то создайте ее. Я вынес соединение в отдельный файл и здесь просто его подключил:


<?php 
  
  require_once("config.php"); 
  
  header("Content-Type: text/xml");
  echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";

?>

Также мы здесь указываем, что тип файла xml и указываем кодировку.

Шаг 3. Выводим данные из базы

Теперь после подключения к базе пишем код дальше. А дальше мы начинаем писать стандартную конструкцию RSS-канала. Вернее ее первую часть


<rss version="2.0">
<channel>
<title>Название канала</title>
<link>Сайт</link>
<description>Описание</description>
<language>Язык</language>

Теперь берем вторую часть конструкции и вставляем ее в наш код. Но, не просто вставляем, а делаем запрос к БД и вытаскиваем из нее нужные нам строки. А строки, которые нам нужны: id, title, description и date. Выводим все это в цикле do/while.


<?php

  $rss = mysql_query("SELECT *, DATE_FORMAT(date, '%e %M %Y') as date FROM news ORDER BY id DESC LIMIT 10");
  $rssfeed = mysql_fetch_array($rss);
  
	   do{
	       echo "<item>";
	       echo "<title>".$rssfeed["title"]."</title>";
	       echo "<link>browse_news.php?id=".$rssfeed["id"]."</link>";
	       echo "<description><![CDATA[".$rssfeed["description"]."<cdata>]]></description>";
	       echo "<pubDate>".$rssfeed["date"]."</pubDate>";
	       echo "</item>";
	   }
	   
	   while ($rssfeed = mysql_fetch_array($rss));

?>

И в самом конце кода закрываем теги канала.


</channel>
</rss>

На этом код RSS-канала закончен. Теперь нам осталось только подключить данный файл к нашей странице. А подключается это очень просто. Между тегами <head></head> пишем такой код:




В коде запроса LIMIT 10 — означает, что новостей будет выведено 10, но вы можете поставить слово число.

Чтобы код был более понятен — я выложу исходники файла rss-канала.

Скачать исходники: здесь

На этом данный урок окончен. Спасибо за внимание.

Автор урока: редакция REDSTAR
Урок для Вас подготовлен командой сайта red-star.pro.