Создание ленты RSS средствами PHP


Практически на любом современном блоге или интернет-магазине в наше время присутствует новостная лента RSS. В основном, цель создания одна – своевременно информировать пользователей интернета о новых статьях или товарах на сайте.

У неё есть большой плюс – пользователь экономит трафик, читая о новинках на сайте.

Но, многие считают, что RSS лента отрицательно влияет на сайт. Пользователи перестаю на него заходить. Что-ж, возможно это так и есть, но цель данной статьи – объяснить, как это работает и как это сделать самому.

Для того, чтобы понять, как работает RSS лента, нужно представлять себе как выглядит её структура. А выглядит она так:

<? xml version = "1.0" ?>
<rss version="2.0">
    <channel>
       <title>Имя RSS</title>
       <link>Ссылка на сайт - источник</link>
      <description>Краткое описание сайта</description>
        <item>
           <title>Имя элемента</title>
           <link>Ссылка на элемент</link>
          <description>Текст статьи (краткий или полный)</description>
          <author>Автор (возможно email)</author>
          <pubDate>Дата создания</pubDate>
        </item>
     
        ...
       
        <item>
           <title>Имя элемента</title>
           <link>Ссылка на элемент</link>
          <description>Текст статьи (краткий или полный)</description>
          <author>Автор (возможно email)</author>
          <pubDate>Дата создания</pubDate>
        </item>
   </channel>
</rss>

RSS – это одна из разновидностей XML. Об этом и говорит первая строчка. Вторая строка нам говорит о том, что это не обычный XML а RSS лента. Третья строка открывает ленту. Остальное я подробно прокомментировал. Думаю вопросов быть не должно. Единственное что добавлю – элементов <item>…</item> может быть много (смотря сколько это зададите вы сами).

В данном примере я представил самые часто используемые теги. Если вам их недостаточно, можете посмотреть остальные на http://cyber.law.harvard.edu/rss/rss.html.

В конце обязательно нужно закрыть ленту с тегами </channel> и </rss>.

Код на PHP предельно простой, поэтому я приведу его здесь целиком, а потом объясню некоторые моменты.

<?
/*
*       Тут подключение к базе данных.
*/
$nameRSS = 'Мой блог/сайт';
$linkSite = 'http://www.lavrik-v.ru/';
$descriptionSite = 'Краткое описание сайта';

echo '<? xml version = "1.0" ?>
      <rss version="2.0">
      <channel>
      <title>'.$nameRSS.'</title>
      <link>'.$linkSite.'</link>
      <description>'.$descriptionSite.'</description>';

$result = mysql_query("SELECT * FROM article ORDER BY date_created DESC LIMIT 15");
while ($row = mysql_fetch_array($result)) {
    $title = $row['title'];
    $text = $row['text'];
    $date = $row['date'];
    $author = $row['author'];
    echo "<item>
            <title>".$title."</title>
            <link>http://lavrik-v.ru/info/".$row['id']."/".$row['url'].".html</link>
            <description>".$text."</description>
            <author>".$author."</author>
            <pubDate>".$date."</pubDate>
            <guid>http://lavrik-v.ru/info/".$row['id']."/".$row['url'] .
        ".html</guid>
         </item>";
}
echo '</channel>
    </rss>';
?>

Самые интересный момент, на который стоит обратить внимание – это запрос.

Как уже и без того понятно, необходимо показывать не все статьи, а последние несколько. В данном примере я взял 15 статей (LIMIT 15).

Так же я отсортировал список по дате добавления в обратном порядке, для того чтобы они были последние (ORDER BY date_created DESC).

А остальное все просто. Все статьи достаются из таблицы article.        

Вот собственно и все.

Поняв принцип можно так-же формировать и xml прайс лист например для яндекс-маркета.

 


Тэги:

Комментарии: 0

Прокомментировать »

 
 
 

Прокомментировать

 
 
Сообщение *
 
Проверочный код *
 
 
 
Яндекс.Метрика