Генератор форм

Для веб-мастера

Реклама


Как самому создать RSS-канал на своем сайте?!

Рейтинг:
Дата: 26 апреля 2010 Просмотры 27311 Комментарии 19

В прошлой статье Вы узнали, что такое RSS и как RSS работает! В этой же статье я расскажу Вам, как на своем сайте при помощи PHP создать свою новостную ленту!

Итак, для реализации RSS-ленты на своем сайте, необходимо иметь:

  • сайт на PHP;
  • базу данных MySQL, в которой хранятся все Ваши заметки или новости!

Если Ваш сайт отвечает этим требованиям, то приступим к реализации RSS-канала на своем сайте!

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

<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>My News</title>
<link>http://mysite.com/</link>
<description>News from my family.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2006 04:00:00 GMT</pubDate>

<lastBuildDate>Tue, 10 Jun 2006 09:41:01 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Weblog Editor 2.0</generator>
<managingEditor>editor@mysite.com</managingEditor>
<webMaster>webmaster@mysite.com</webMaster>

<item>
<title>My Birthday</title>
<link>http://mysite.com/blog/2006/mybirthday.php</link>
<description>I celebrate my birthday today!</description>
<pubDate>Tue, 01 Jun 2006 09:39:21 GMT</pubDate>
<guid>http://mysite.com/blog/2006/06/01.html#item1</guid>
</item>

<item>
<title>My new PC</title>
<link>http://mysite.com/blog/2006/mynewpc.php</link>
<description>I want to buy new PC.</description>
<pubDate>Tue, 27 May 2006 08:37:32 GMT</pubDate>
<guid>http://mysite.com/blog/2006/05/27.html#item1</guid>
</item>

</channel>
</rss>

То есть основные параметры RSS ленты задаются в верхней части. Сначала указывается, что это XML документ формата XML 1.0 и что это к тому же RSS 2.0. Затем указываются название ленты, ссылка на главную страницу сайта, краткое описание содержимого и дата последнего изменения в ленте. Затем идёт цикл самих статей или новостей в тегах <item>.

Ниже приведен список и описание тегов  RSS2.0

Обязательные элементы канала
title Имя RSS канала. Оно например может совпадать с названием сайта.
description Краткое описание RSS канала.
link Ссылка на сайт, с которым связан канал.
Необязательные элементы канала (channel)
language Язык канала (en-us - Английский; ru - Русский).
copyright Сведения об авторстве на RSS канал.
managingEditor Email адрес ответственного за контент канала.
webMaster Email адрес ответственного за техническую часть публикации канала.
pubDate Дата публикации канала, в соответствии с Date and Time Specification of RFC 822.
lastBuildDate Время последней модификации канала в соответствии с Date and Time Specification of RFC 822.
category Одна или несколько категорий, к которым принадлежит канал.
generator Название программы, использованной для генерирования RSS канала.
docs Ссылка на файл документации подвида RSS, который был использован для создания канала.
ttl Ttl расшифровывается как ‘time to live’. Это число минут, в течение которых канал сохраняет свою актуальность.
image Используется для подключения графического файла (GIF, JPEG, или PNG), который будет показан вместе с RSS каналом. Имеет следующие параметры:
title - обычно тот же текст, что и в RSS title;
description - описание графического файла, которое будет показано, если файл не доступен;
link - ссылка на страницу, с которой связан канал;
url - URL на файл формата JPEG, GIF или PNG, который связан с RSS каналом;
width - ширина рисунка.
height - высота рисунка.
skipHours Число часов, в течение которых RSS ридеры могут не проверять канал на обновления.
skipDays Число дней, в течение которых RSS ридеры могут не проверять канал на обновления.
Обязательные элементы итема (item)
title Имя итема (новости, сообщения) RSS канала.
description Краткое описание итема.
link ссылка на страницу, содержащую полное описание события.
Необязательные элементы итема (item)
author Email адрес автора сообщения.
category Категория итема.
comments Ссылка на страницу с комментариями по итему.
enclosure Описывает медиа-объект, присоединенный к итему. Имеет следующие параметры:
url - ссылка на файл объекта;
length - размер файла в байтах;
type - тип файла, в соответствии со спецификацией MIME.
guid Уникальная строка, используемая для идетификации итема.
pubDate Дата публикации итема, в соответствии с Date and Time Specification of RFC 822.

Конечно же тут приведены не все теги стандарта RSS, но я вас уверяю что этого больше чем достаточно для создания фида, ну а для особо интересующихся дам ссылку на спецификацию RSS 2.0.

Если со структурой стандартного RSS-канала разобрались, то приступаем к реализации на PHP.

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

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

Так как вся информация хранится в базе данных, то первым делом создадим файл, который будет отвечать за подключение к базе данных MySQL и назовем его db.php

<?php 

$DB_host =  "localhost"; // имя сервера MySQL

$DB_user =  "root"; // имя пользователя MySQL

$DB_pass =  "pass"; // пароль на сервере MySQL

$DB_name =   "database"; // имя  базы данных 
		
/* Соединяемся с сервером MySQL */ 
$db=mysql_connect($DB_host,$DB_user,$DB_pass); 

/* Выбираем  необходимую базу данных */ 
mysql_select_db($DB_name, $db); 

/* Устанавливаем  кодировку */ 
mysql_query('SET NAMES cp1251'); 

?>

Далее создадим файл rss.php, который и будет отвечать за формирование Вашего RSS-канала!

<?php

/* Подключаемся к базе данных*/

include "db.php";

/* Показываем браузеру, что это xml-документ */

header("content-type:text/xml");

/* Выводим название и описание канала*/

echo "<?xml version=\"1.0\" encoding=\"windows-1251\"?>

<rss version=\"2.0\">

<channel>

<title>Название RSS-ленты</title>

<link>http://test.ru</link>

<description>Описание RSS-ленты</description>

<language>ru</language>";

/* В цикле выводим все заметки из базы данных 
из таблицы articles (у Вас будет другая таблица)*/

$result=mysql_query("SELECT * FROM post ORDER BY date DESC");

if  (mysql_num_rows($result) > 0){

   while ($myrow = mysql_fetch_array($result)){;

      echo "<item>".

      "<title>".strip_tags($myrow['title'])."</title>".

      "<link>http://test.ru/articles.php?id=".$myrow['id']."</link>".

      "<description><![CDATA[".$myrow['description']."]]></description>".

      "<pubDate>".date("r",$myrow['date'])."</pubDate>".

      "<guid>http://test.ru/articles.php?id=".$myrow['id']."</guid>".

      "</item>";
   }
}

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

?>
	  

Ну вот собственно и все!

Теперь осталось закачать эти два файла к себе на сервер, например в папку rss и тогда ссылка на Ваш RSS-канал будет иметь вид http://адрес_вашего_сайта.ru/rss/rss.php.

А для того, чтобы браузер автоматически определял Ваш RSS-канал, необходимо между тегами <head></head> прописать следующий код:

				<link rel="alternate" type="application/rss+xml" 
title="Название Вашего RSS-канала" 
href="http://адрес_вашего_сайта.ru/rss/rss.php" />
	

Если же Ваш сайт не поддерживает PHP и новости не хранятся в базе данных MySQL, то Вам необходимо вручную создать такой xml-файл и каждый раз добавлять в него свои новости!

Ну и на последок скажу пару слов о том, как отслеживать статистику по своему RSS-каналу! Именно для этих целей и был создан сервис feedburner. Он позволит вам получать максимально возможную статистику, такую, например, как: количество подписчиков, распределение подписчиков по странам, степень интереса подписчиков к тем или иным новостям, возможность получать ваши RSS-новости по e-mail и т.д.

Основной принцип работы feedburner`а заключается в том, что он является посредником между вашим RSS-документом и читателями. Вы указываете feedburner`у адрес своей RSS-ленты, после чего feedburner сможет отдавать эту ленту уже из другого адреса (адрес будет таким: http://feeds.feedburner.com/ + имя вашей RSS-ленты). И если пользователи будут подписываться именно на адрес от feedburner`а, вы сможете в полной мере использовать все функции данного сервиса. При этом нужно помнить, что если кто-то подпишется на настоящий адрес вашего канала, вы не сможете получить прелести использования feedburner`а.

Эта схема поможет придать больше наглядности вышеописанному:

RSS-документ на feedburner

Теперь вы можете добавить свою ленту RSS в различные каталоги RSS лент и ждать притока посетителей с них на ваш сайт.

Скачать исходники Вы можете по этой ссылке!

Удачи вам!

Оцените эту статью:



ТЕГИ:
Похожие статьи
Интересно почитать

    Получать новые материалы этого сайта на свой email адрес?

    Отправлять мне комментарии по эл. почте?

Простая CRM

Нашли ошибку в тексте

Система Orphus
https://biznesguide.ru/coding/102.html
3.99 из 5 на основе 18 оценок.