RSS на PHP

RSS на PHP

В этом небольшом уроке мы будем создавать свою собственную RSS ленту средствами PHP. С помощью этой ленты можно облегчить себе и окружающим поисковым роботам жизнь. Все файлы будут браться из базы данных и превращаться в список с пунктами.
В предыдущей статье вывод новостей RSS с помощью PHP мы уже показывали взаимодействия с лентой.
На текущий момент самая актуальная версия RSS является версией 2.0, на это и будем опираться. Пример готового решения можно увидеть, посмотрев на наш rss поток. Давайте рассмотрим исходный код xml файла:

<?xml version="1.0"?>
   <rss version="2.0">
        <channel>
           <title>Название ленты</title>
           <link>Ссылка на ваш проект</link>
           <description>Описание 200 символов.</description>
           <item>
               <title>Название добавленной новости</title>
               <link>Прямая ссылка на новость</link>
              <description>Описание новости (небольшое)</description>
              <author>Имя автора записи</author>
              <pubDate>Дата новости</pubDate>
          </item>

            ...

           <item>
               <title>Название добавленной новости</title>
               <link>Прямая ссылка на новость</link>
              <description>Описание новости (небольшое)</description>
              <author>Имя автора записи</author>
              <pubDate>Дата новости</pubDate>
          </item>
       </channel>
  </rss>

При этом свойств одного материала очень много, все данные предоставлены ниже.

Обязательные элементы channel:
title — название rss потока.
description — небольшое описание проекта.
link — прямая ссылка на главную страницу канала.

Необязательные элементы channel:
language — язык канала. Большинство современных ретрансляторов автоматический определяют данный элемент.
copyright — авторский копирайт.
managingEditor — email пользователя, который отвечает за данный канал.
webMaster — email технической поддержки по данной ленте.
pubDate — дата создания канала (RFC 822).
lastBuildDate — время последнего изменения (RFC 822).
category — как понятно из названия категория канала (можно указать несколько).
generator — программа с помощью, которой вы создали ленту.
docs — документы по использованию вашего канала.
ttl — time to live определяет через какой промежуток времени лента потеряет актуальность.
image — изображение отвечающее за \»дизайн\» ленты.
skipHours — количество часов запрещающее ридерам проверят ленту.
skipDays — количество дней запрещающее ридерам проверят ленту.

Обязательные элементы item:
title — имя новости или сообщения.
description — небольшое описание item.
link — ссылка на страницу с полным описанием.

Необязательные элементы item:
author — email автора.
category — категория item
comments — ссылку на страницу, где можно обсудить новость.
enclosure — Медиа-объект который бил прикреплён к новости.
guid — уникальный текст которые не вкоем случае не должен повторяться (можно использовать ссылку на страницу или ID новости).
pubDate — дата создания item (RFC 822).

После того как вы узнали, какие параметры вам необходимы приступим к созданию самой ленты. Для этого создадим в главной директории файл rss.php и запишем в него следующий текст

<?php
echo '<?xml version="1.0"?>
          <rss version="2.0">
          <channel>
          <title>Название RSS-потока</title>
          <link>Ссылка на ваш проект</link>
          <copyright>Сделано при поддержке mentor.ru</copyright>
          <description>Краткое описание </description>';
    $result=MYSQL_QUERY("SELECT id, title, text, date, author, link FROM article ORDER BY date DESC LIMIT 20");
    while ($row=MYSQL_FETCH_ARRAY($result))
   {
     $id=$row['id'];
     $title=$row['title'];
     $text=$row['text'];
     $date=$row['date'];
     $link=$row['link'];
     $author=$row['author'];
     echo '<item>
            <title>$title</title>
            <link>$link</link>
            <description>$text</description>
            <author>$author</author>
            <pubDate>$date</pubDate>
            <guid>$link</guid>
         </item>';
   }
   echo '</channel>
   </rss>';
   ?>

Теперь необходимо зайти в свою базу данных, используя phpmyadmin или другой клиент, и посмотреть заголовки таблицы, которая отвечает за вывод материалов с сайта. После чего, отредактировать rss.php. Как только вы закончите работу, и у вас будет полностью рабочая лента, её необходимо подключить к проекту, для этого нужно открыть исходный код и в раздел head написать следующий текст:

<head>
 ...
<link rel="alternate" type="application/rss+xml" title="RSS-канал" href="ваш-сайт.ру/rss.php" />
 ...
</head>

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

0
Поделиться
Mentor

Уже более четырех лет интернет - моё хобби. Больше всего мне удалось освоить веб-дизайн. В настоящее время активно занят продвижением сайтов.

1 коммент.

  1. RicLume

    Здравствйте! Спасибо за информацию, очень помогла

Оставить комментарий

Войти с помощью: 
Яндекс.Метрика