Консультация № 143231
06.09.2008, 20:15
0.00 руб.
06.09.2008, 20:33
0 9 1
Всем привет!

Подскажите ресурсик с хорошей статьёй по созданию новостей RSS.

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

Спасибо.

Обсуждение

Неизвестный
06.09.2008, 22:00
общий
это ответ
Здравствуйте, Прим Палвер!
URL >>Здесь все самое главное. Единственное там не рассказывается как связывать свои страницы с RSS лентой. Для этого в радел HEAD веб-страниц добавьте это(подразумевается что скрипт RSS находится в каталоге со страницей и называется rss.php):
Код:
 <link rel="alternate" type="application/rss+xml" title="RSS-лента" href="./rss.php" />


А вот уже готовый скрипт:
rss.php
Код:
<?php
//Подключаем файл с параметрами RSS
require_once('rssconfig.php');
//Открываем файл с содержимым RSS
$RssContent = file(RSS_FILE_NAME);
//Если произошла ошибка, то завершаем работу скрипта
if (!$RssContent) { close('Unable to open file '.RSS_FILE_NAME); }
//Выводим ленту
print '<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" >
<channel>
<title>'.RSS_TITLE.'</title>
<link>'.RSS_LINK.'</link>
<description>'.RSS_DESCR.'</description>';
//Обрабатываем информацию для RSS
//Получаем кол-во статей
$count = count($RssContent);
//Для всех статей
for ($i = 0; $i < $count; $i++)
{
//Разделяем на части
$RssItem = explode('|', htmlspecialchars($RssContent[$i]));
//Выводим
echo '<item>
<title>'.$RssItem[0].'</title>
<link>'.$RssItem[1].'</link>
<description>'.$RssItem[2].'</description>
</item>';
}
print '</channel>
</rss>';
?>


rssconfig.php - файл с параметрами ленты: заголовок, ссылка на сайт ленты, описание ленты:
Код:
<?php
//Имя файла в из которого берется информация для ленты ОБЯЗАТЕЛЬНО!
define('RSS_FILE_NAME', 'rss-posts.txt');
//Название канала ОБЯЗАТЕЛЬНО!
define('RSS_TITLE', 'rss');
//URL веб-сайта, связанного с каналом. ОБЯЗАТЕЛЬНО!
define('RSS_LINK', 'rss_link');
//Фраза или предложение для описания канала. Обязательно!
define('RSS_DESCR', 'rss_description');
?>


И в папке с rss.php должен быть файл, в котором находятся статьи для RSS. Имя файла указывается в константе RSS_FILE_NAME в rssconfig.php.
Его содержимое имеет такой вид(символ | - разделитель):
Код:

Название первой стать|ссылка на статью|содержимое статьи
Открытие RSS-канала|http://markedone.tu2.ru/news?id=1|<center><H1><font color = "red">Ура! Мы открылись!</font></H1></center>


Про спецификацию RSS можно узнать URL >>здесь.
Удачи!!!
Неизвестный
06.09.2008, 23:41
общий
Возможно, до меня начинает доходить.

При получении пользователем ссылки на этот файл ему предлагается подписка на rss-новости. Так?
Неизвестный
07.09.2008, 19:37
общий
Да, так.
Неизвестный
07.09.2008, 21:40
общий
Ещё вопрос.

Нужно постоянно растить это новостной файл? либо через определённое время (раз в сутки, например) заменять его?

Что будет, если я обновляю файл ежедневно, а пользователь пару дней не был в нете? Его браузер (или чем он там смотрит) получит новости за пропущенные дни тоже или только за последний день (последнюю ленту)?
Неизвестный
07.09.2008, 22:16
общий
Просто добавляйте новости в файл, а браузер будет сообщать пользователю, что появилась новая статья, когда вы её добавите.
Неизвестный
07.09.2008, 22:31
общий
Т.е. файл должен всё же разрастаться? Старые новости остаются в нём?
Неизвестный
08.09.2008, 16:01
общий
Да, если вы хотите, но не обязательно.

Сам с RSS не работал, просто недавно спрашивали почему не работает RSS и чтобы ответить мне пришлось немного изучить RSS и попрактиковаться. Скрипт в ответе - результат моих экспериментов. Может быть в будущем я его доработаю и улучшу.
Неизвестный
08.09.2008, 19:10
общий
Прим Палвер, просто оставляете какое-то количество новостей. Когда нужно новую добавить, самую старую удаляйте.
Неизвестный
10.09.2008, 19:19
общий
Всем СПАСИБО!!!

Сделал: ulenspiegel.od.ua

Создал для этого таблицу rss в базе данных для хранения новостей. А из неё уже идёт формирование rss.xml. Смотрю и рыдаю от радости
Форма ответа