Пятница
17 Май 24, 02:21
BYDEM.RU Web Стандарт
Приветствую Вас Гость | RSS
Главная Каталог статей Регистрация Вход
Меню сайта

Категории каталога
PHP [18]
HTML [3]
CSS [2]
Общая информация [7]
MySQL [3]

Мини-чат
200

Главная » Статьи » Учебники » Общая информация

Создание собственного RSS канала.

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

Обычно с помощью RSS 2.0 даётся краткое описание новой информации, появившейся на сайте, и ссылка на её полную версию.
Интернет-ресурс в формате RSS называется RSS-каналом, RSS-лентой или RSS-фидом. (Взято с википедии).

Вот и разобрались что такое RSS канал. Приступим, непосредственно, к написанию сценария, который и будет создавать
данный канал. Создадим класс с помощью которого и будем осуществляться функционирование канала.
Код класса:

class rss
{
//количество новостей в канале
const count = 10;
//заголовок канала
const title = 'Новости нашего сайта';
//адрес сайта
const url = 'http://wapcoder.com';
//описание канала
const desc = 'Новости сайта для wap разработчиков';

//строим конструктор
function __construct($host,$user,$password,$db_name)
{
$this->header();
if (!$this->connect_db($host,$user,$password,$db_name)) $this->error_connect_db();
else $this->body();
}

//соединяемся с базой
function connect_db($host,$user,$password,$db_name)
{
$r=@mysql_connect($host,$user,$password);
if (!$r) return false;
mysql_query ('SET NAMES "UTF8"',$r);
mysql_query ('SET collation_connection="utf8_general_ci"',$r);
mysql_query ('SET collation_server="utf8_general_ci"',$r);
mysql_query ('SET character_set_client="utf8"',$r);
mysql_query ('SET character_set_connection="utf8"',$r);
mysql_query ('SET character_set_results="utf8"',$r);
mysql_query ('SET character_set_server="utf8"',$r);
if (!mysql_select_db($db_name,$r)) return false;
return true;
}

//шапка каналаfunction header()
{
header('Content-type: application/xml; charset=utf-8');
echo '<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>'.$this->win2utf(self::title).'</title>
<link>'.self::url.'</link>
<description>'.$this->win2utf(self::desc).'</description>
<language>ru</language>';
}

//тело канала
function body()
{
$q=mysql_query ('SELECT * FROM win_news_club LIMIT '.self::count);
if ($q)
{
if (mysql_num_rows($q) == 0) $this->news_not_found();
else
while ($rows=mysql_fetch_array($q))
{
echo '<item>
<title>'.$rows['header'].'</title>
<link>'.self::url.'</link>
<description>'.$rows['contens'].'</description>
<pubDate>'.date ('D, d M Y H:i:s',strtotime($rows['date_create'])).' GMT</pubDate>
<guid>'.self::url.'/news/'.$rows['id'].'/</guid>
</item>
';
}
mysql_free_result($q);
}
}

//при соединении с базой возникли ошибки
function error_connect_db()
{
echo '<item>
<title>'.$this->win2utf('Временные неполадки').'</title>
<link>'.self::url.'</link>
<description>'.$this->win2utf('Извините, на сайте возникли технические неполадки!').'</description>
<pubDate>'.date ('D, d M Y H:i:s').' GMT</pubDate>
<guid>http://wapcoder.com/</guid>
</item>';
}

//новостей не наёдено
function news_not_found()
{echo '<item>
<title>'.$this->win2utf('Новостей не найдено').'</title>
<link>'.self::url.'</link>
<description>'.$this->win2utf('Новостей не найдено!!!').'</description>
<pubDate>'.date ('D, d M Y H:i:s').' GMT</pubDate>
<guid>http://wapcoder.com/</guid>
</item>';
}

//перекодирование из windows-1251 в utf-8
function win2utf($msg)
{
return iconv('windows-1251','utf-8',$msg);
}
//объявляем деструтор
function __destruct()
{
echo '</channel></rss>';
mysql_close();
}
}


Как использовать данный объект:
В методе body исправьте в запросе имя таблицы на своё и извлекаемые поля.
Также всё это можно без проблем модифицировать, чтобы новости извлекались из файла.
Копируем код класса в файл php и после кода класса пишем:
$rss= new rss('сервер где расположен mysql','имя пользователя','пароль','имя базы данных');
Пример:
$rss= new rss('localhost','windoctor','123456','cms');

ВНИМАНИЕ: Данный сценарий будет работать на сервере с php не младше 5 версии.

В принципе всё.
Теперь у вас есть собственный RSS канал новостей.
Всем спасибо и желаю удачи в кодинге.
Пример RSS канала сайта http://wapcoder.com можно просмотреть по адресу http://wapcoder.com/rss.php
Автор статьи: windoctor
Все вопросы связанные со статьёй просьба писать на форум http://wapcoder.com
При копировании статьи, видимая ссылка на http://wapcoder.com обязательна.
Сайт автора: http://sultanov.net

Категория: Общая информация | Добавил: bydem (14 Сен 07)
Просмотров: 674 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Copyright MyCorp © 2024