Как организовать RSS-канал

12
grey109
На сайте с 15.06.2005
Offline
180
#11
Ramires:
Вопрос может несколько оффтоп но -- как прикрутить РСС к сайту

Почему оффтоп? Мы как раз про это и говорим :-)

Сделать сабж совсем не сложно: пишешь скрипт, который берет из базы n последних новостей и выдает их в формате rss. Если что не понятно - спрашивай, помогу.

I
На сайте с 02.12.2005
Offline
99
#12

недавно как сегодня себе сделал.

Данно: движок блога полностью "самопальный":php+mysql.

Задача: сделать rss ленту 10 последних тем.

С самого начала чуть было не сделал ошибку: хотел что бы файл в формате rss брал постоянно данные из базы,то бишь был всегда актуальным.Но потом прикинул, что

1) при многочисленных подписчиках (ну а что,всё может быть:) ) программа чтения к rss будет тормозит на вашем фиде.

2)дополнительная нагрузка на бд.

Поэтому нужно всего лишь сделать постоянную генерацию этого файла. Забыл сказать ,что сделал я пока только подписку на новые темы примерно за 5 минут,так как больше не было времени,но с подпиской на новые комментарии либо на разбивку rss лент на разные рубрики блога уже не возникнет проблем.

Приступим. Напишем функцию generate_rss() для генерации rss потока:


function generate_rss () {
// делаем(если нет на сервере такого файла) либо открываем на запись файл rss2.xml
$rssfile = fopen('../rss2.xml',w);

//пишем заголовок rss файла. Про спецификацию прочитайте выше по ссылке.
fwrite($rssfile,"<?xml version=\"1.0\" encoding=\"windows-1251\"?>\n<rss version=\"2.0\">\n\n<channel>
<title>Новости поисковых систем, IT, SEO</title>
<description>Новости поисковых систем, IT, SEO</description>
<link>http://blog.w-research.ru/</link>
</channel>"."\n\n");

//делаем выборку из базы 10 последних тем блога
$result = mysql_query("SELECT id, title FROM `blog_topic` ORDER BY posted DESC LIMIT 0,10") or die(mysql_error());
//цикл записи тем (с ссылками на них) в файл
while($row = mysql_fetch_array($result)) {
$item = "<item>\n<title>$row[title]</title>\n<link>http://blog.w-research.ru/?id=$row[id]</link>\n</item>";
fwrite($rssfile,$item."\n");
}
//закрываем rss файл
fwrite($rssfile,"\n</rss>");
//закрываем файл
fclose ($rssfile);
}

Функция готова.Теперь смотрите где у вас в скриптах идёт вставка в бд новых новостей и вставляйте вызов этой функции сразу после вставки.

Пример: http://blog.w-research.ru/

Rss лента: http://blog.w-research.ru/rss2.xml

Если где-то ошибся поправьте

Динамика изменения курса евро и бакса (http://valuta.itemp.ru/)
Independence
На сайте с 29.10.2005
Offline
428
#13

Если у вас самописные скрипты Perl, то и RSS тоже на нем написать довольно просто. Ничего там сложного нет. Просто нужно знать формат вывода и все. Потом проверьте на каких-нть ресурсах типа Валидатора, Канбана и пр., которые показывают, что RSS у вас выдается корректно или некорректно.. Я так сам делал..

LD
На сайте с 02.06.2007
Offline
68
#14

всем спасибо огромное, сяду сделаю, ясность вроде появилась :)

Домены в РУ-Центре (NIC.RU) от 92 р. (/ru/forum/680553) - офиц.партнер - панель - regfi.ru (http://regfi.ru)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий