Даник Ковалевский aka DarkEol







Программирование  |  Преподавание  |  Публикации  |  Переводы и языки  |  Прочее  |  Про меня En / De / עב

Статьи  |  Скрипты  |  Сайты  |  Полезности  |  Ссылки

Создание RSS канала

Итак RSS. Некоторые расшифровывают это сокращение как "Really Simple Syndication", другие как "RDF Site Summary",
третьи как "Rich Site Summary", четвертые "Reduced Space Symbology"...
Но это еще не все. Кроме того существует куча версий RSS: 0.90, 0.91, 0.92, 0.93, 0.94, 1.0, 2.0.
Эта заметка написана про формат 2.0, а загадку о верном сокращении, оставляю открытой. Rешение Sыщите Sами ;-)

RSS это данные структурированные особым образом для того чтобы потом их было удобно вытягивать и размещать на других сайтах.
Допустим вам хочется, чтобы новости вашего сайта появлялись на других ресурсах. Для этого нужно сделать новости
легкодоступными, то есть перевести их в формат RSS. Понятно, что в RSS переводятся не все новости, а только несколько самых
последних.
К примеру ваши новости размещаются в MySQL таблице под именем 'news'. В таблице есть следующие колонки:
id - порядковый номер новости
title - заголовок новости
text - текст новости
author - автор
date - дата публикации
Напишем php код который переводит двадцать последних новостей в формат RSS.

<?php
//прежде всего нужно указать в заголовке, что наш файл будет в XML формате.
header('Content-type: application/xml');

//затем впишем вступительную информацию: кто мы,
адрес ресурса, контактные мэйлы вебмастера и редактора, и.т.д.

$data="<?xml version=\"1.0\" encoding=\"windows-1251\" ?> ";
$data.= "<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">";
$data.= "<channel>";
$data.= "<title>Название сайта</title>";
$data.= "<link>Адрес сайта</link>";
$data.= "<description>Короткая информация о сайте</description>";
$data.= "<copyright>Праводержатель</copyright>";
$data.= "<language>ru</language>";
$data.= "<managingEditor>e-mail редактора</managingEditor>";
$data.= "<webMaster>e-mail вебмастера</webMaster>";

//теперь подключимся к нашей базе данных. username - имя пользователя
базы, password - его пароль, db_name - название базы.

$link = mysql_connect ("localhost", "username", "password") or die("Не могу соединиться");
mysql_select_db("db_name", $link);

//создадим запрос к базе на выдачу новостей
$query="SELECT * FROM news ORDER BY id DESC";
$result = mysql_query($query, $link);

//пройдемся по двадцати последним вытаскивая, то что нам нужно
for ($i=1; $i<20; $i++)
{
//вытаскиваем нужные нам колонки из таблицы
$row = mysql_fetch_array($result);
$date = $row['date'];
$title = $row['title'];
$text = $row['text'];
$author = $row['text'];

//добавляем нужную нам информацию с правильной структурой
$data.="<item>";
$data.="<title>".$title."</title>";
$data.="<link>тут вписать адрес сайта </link>";
$data.="<description>".$text."</description>";
$data.="<dc:creator>Администрация проекта Имярек</dc:creator>";
$data.="<dc:date>".$date."</dc:date>\n</item>";
}

//закрываем базу
mysql_close($link);

//добавляем хвостовую информацию.
$data=$data."</channel></rss>";

//печататаем результат на экран. Все!
print($data);







Valid XHTML 1.0 © DarkEol, 2002–2024 Valid CSS Java 11.0.9