На главную
Скрипты
Бесплатный скрипт каталога статей Articles Publisher
Stex Notice-board : Бесплатный скрипт доски объявлений
Скрипт базы знаний для игры Lineage II C5 и Interlude
 
Говорим
ЧПУ
RSS на MODx
Домены *.RU за 110р.
 
 
 
Материалы + Практика
RSS лента для вашего сайта - это просто
Конфигурации .htaccess
Находчивые слуги - Поисковые системы - история и наши дни
Препарируем RSS : Технология RSS : Экспорт информации в RSS
Бесплатные CMS-системы для создания динамических сайтов
Plogger - при выборе движка для организации коллекции изображений
PHP и MySQL : Добавление и вывод информации
Семантическая паутина : Социальные сети : Блоги
LovePlanet - как организовать собственный сайт знакомств и заработать с LovePlanet
Display:none - скрываем, отображаем содержимое
О хостинге с предустановленными CMS
Что такое блог и откуда он взялся?
Мой первый скрипт авторизации
Отображения статуса ICQ номера на сайте
Счетчик посещаемости сайта
Редирект с посылкой ошибки 301 и 302
Путь реселлира 1
Статьи как способ заработать, привлеч трафик, получить доп. контент
Captcha - что это такое, для чего нужна, где взять и как поставить
Перенаправление трафика с поисковых систем
Делаем закладки - дабы вмещать больше
SEO (Search Engine Optimization) Поисковая оптимизация
Отправка сообщений с сайта
 
 
 
Soft
Yandex Index View - Проверка проиндексированности страниц поисковой системой Яндекс
Site - Auditor - Общий анализ сайта в крупных поисковых системах
AllSubmitter - программа для регистрации сайта в каталогах, рейтингах и т.д.
DCFinder - проверка уникальности текста
Разное
Базы каталогов для программы AllSubmitter
Коллекция больших анимированных смайликов в формате GIF - 91шт
Русскоязычные учебники по HTML
Учебник PHP
Коллекция из 47-ми PNG изображений символа RSS
Текстовые (*.txt) базы каталогов сайтов
 
 
 
! При использовании материалов с сайта - активная ссылка на данный сайт обязательна!
 
 
 
Статистика посещаемости сайта
Значения тИЦ (CY Яндекса) и PageRank от Google сайта Анализ сайта
 
 
 
! Реклама
Портал, на котором вы можете tomtom symbian скачать бесплатно
 
 

Препарируем RSS : Технология RSS : Экспорт информации в RSS

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

Разбираемся в технологии и пишем свою новостную ленту.

Для чего?
RSS - это технология, которая в силу своего удобства и функциональности пришлась по душе миллионам пользователей. Самые крупные интернет проекты уже не скупятся на то, чтобы предоставлять информацию в этом формате. За примером далеко ходить не надо - любой новостной сайт экспортирует свои новости в RSS, Яндекс открыл свою собственную, очень удобную службу индексирования новостных RRS лент, и даже в ЖЖ давно уже есть возможность читать дневники в этом формате.
Так что если для тебя аббревиатура RSS не значит ровным счётом ничего, то ты здорово отстал от жизни, и тебе надо обязательно изучить новую технологию. Тем более что она проста как два рубля и гениальна как пакет кефира. Также присутствие RSS ленты на любом интернет - проекте делает его весьма солидным и здорово отличает от конкурентов. По этому если у тебя есть свой сайт, на котором ты регулярно размещаешь новые материалы, RSS лента здорово поможет тебе поднять популярность твоего ресурса. И просто сделает его более качественным, современным и удобным.

Что это такое?
RSS - Really Simple Syndication. Какая ещё "реально простая синдикация", что за бред? На самом деле всё просто. Последнее слово можно перевести как "приобретение", а всю аббревиатуру как "Чрезвычайно простое приобретение информации". Это такой способ обмена текстовыми данными в web среде, который основан на том факте, что информация на всех сайтах имеет схожую структуру и может быть приведена к общему формату.
Как и следовало ожидать, RSS - это язык, являющийся подмножеством XML, и поэтому все RSS документы должны соответствовать стандарту XML 1.0 (www.w3.org/tr/rec-xml). Однако сам стандарт RSS определён на один уровень выше и имеет вполне чёткое описание, которое я тебе сейчас и приведу в сжатом виде.

Стандарт RSS
На верхнем уровне любого RSS документа находится элемент <rss>, который содержит обязательный атрибут version, указывающий на версию документа. В этой статье я буду описывать версию 2.0, поэтому атрибут version должен иметь соответствующее значение.
Уровнем ниже от <rss> лежит элемент <channel>, который встречается однажды и несёт всю основную информацию об RSS канале и его содержимом. Элемент <channel> обязательно имеет в себе троих потомков: title - заголовок блока, link - ссылка на соответствующий ленте web ресурс и description - описание ленты.
Внутри этого элемента может присутствовать ещё куча тэгов, однако основной интерес для нас будут представлять элементы <item>, в которых находится информация о публикациях. Внутри <item> может содержаться большое число элементов: title, link, description, category, comments, enclosure, guid, pupDate, и sourse. Назначение каждого из этих полей, в общем-то, ясно из названия, но чтобы тебе было понятно, я просто приведу пример небольшого RSS документа:

<?xml version="1.0" encoding="windows-1251" ?>
<rss version="2.0">
<channel>
<title>Мои новости</title>
<link>http://site.ru</link>
<description>Описание моих новостей</description>
<image>
<url>http://site.ru/moiLogotip.gif</url>
<link>http://site.ru</link>
<title>Мои новости</title>
</image>
<lastBuiltDate>16 feb 2008 18:05:12 +0300</lastBuildDate>
<item>
<title>Сегодня на сайте новая статья!</title>
<link>http://site.ru/?str=news</link>
<description>Сегодня была опубликована новая статья - посвященная RSS</description>
<pubDate>16 feb 2008 18:05:12 +0300</pubDate>
<guid> http://site.ru/?str=news</guid>
</item>
</channel>
</rss>


Такой вот формат. Обрати внимание: элемент <image> позволяет указать соответствующую твоему каналу картинку. Что касается остальных неизвестных тебе тэгов, то знай, что <pubDate> определяет время публикации, а <guid> - это уникальный идентификатор записи, например соответствующий её web адрес.

И что здесь красивого?
Ты, наверное, ещё не совсем осознал, чем же всё это так здорово. Абсолютно согласен с тобой: просматривать новости, разглядывая тэги xml документа, не самое романтичное занятие. Однако пойми простую вещь: перед просмотром лента должна быть сформирована, то есть её xml представление слижет лишь источником необходимой информации, а оформление предоставляется клиентским приложением, при помощи которого пользователь просматривает твою ленту. Написать такое приложение совсем не сложно, и в настоящий момент уже создано достаточное количество функциональных программ, которые оформляются как самостоятельно, так и в форме плагинов.
Сейчас мы напишем с тобой своё собственное web приложение на PHP, которое будет экспортировать данные в RSS.

Архитектура блога
Да ну какая тут архитектура. Всё просто. В базе MySQL есть таблица rssblog, которая имеет следующую структуру:

CREATE TABLE rssblog (pid int not null primary key auto_increment, pupDate date, title text, descr text);

Соответственно, в этой таблице хранятся посты, которые нам надо выводить в RSS ленту. Написать скрипт, который будет добавлять новости в таблицу, - это элементарно, наверняка вы это не раз проворачивали. Так что я сегодня более подробно расскажу об экспорте данных.
Всё очень просто. Сначала элементарным запросом мы выбираем десять последних записей, сортируя их по времени публикации, а затем в цикле по всем возвращённым строкам начинаем строить RSS документ, жёстко следую описанному формату. В результате несложно получить такую вот функцию:

function BuildRss($title, $link, $desc)
{
$re=mysql_query("select * from rssblog order by pid desc limit 10");
echo "<?xml version=\"1.0\" encoding=\"windows-1251\" ?>\n";
echo "<rss version=\"2.0\">
<channel>
<title>$title</title> # Заголовок ленты
<link>$link</link> # Ссылка на сайт
<description>$desc</description>";
# Цикл по всем нужным записям в таблице
while($res=mysql_fetch_arrey($re)){
echo "
<item> # Новый пост
<title>$res[title]</title> # Заголовок из базы
<link>$res[link]</link> # ссылка из базы
<description>$res[descr]</description> # описание из базы
<pubDate>$res[pubDate]</pubDate> # дата публикации из базы
<guid>$link/?str=$res[pid]</guid> # Идентификатор (как пример)
</item>";
}
echo "</channel>
</rss>";
}


Теперь, если сохранить эту процедуру в php скрипте и выполнить её на сервере, клиенту вернётся RSS документ, который удобнее всего просматривать при помощи специальной программы вроде ActiveRefresh (Скачать ActiveRefresh v.2.5.3 740кб).

Выводы
Согласись, всё просто элементарно! По большому счёту, создать RSS ленту ничуть не сложнее, чем сформировать, скажем, html таблицу: нужно лишь знать грамматику языка, а расположить в нужной последовательности тэги - совсем не сложно.

Скачать готовый скрипт

Автор: Никита Кислицин | nikitoz@real.xakep.ru


Автор Иванов И.Г. | Email: tollun@yandex.ru | Сайт работает на MODx | Обратная связь | Каталоги сайтов | Обои девушки модели, знаменитости |