Блог старого компьютера

Блог старого компьютера


Главная PHP Делаем RSS ленту (рассылку) на сайт

Делаем RSS ленту (рассылку) на сайт

26.04.2012 08:53 Администратор PHP
Печать PDF

Всегда раньше думал что RSS что то такое сложно и заоблачное на самом деле все просто. Не знал в какой раздел засунуть эту статью вроде относится она и к PHP, и к XML, и к HTMl, да и MYSQL. Вообщем не будем попусту лить воду, а перейдем к описанию. RSS это - семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. (вырезка из википедии)

 Как прочитали выше RSS это XML формат, а сгенерировать материалы сайта в xml не составляет ни какого труда. Нужно лишь сделать простейший запрос к базе данных и вывести их циклом.

Ниже предоставлю простейший php код генерируюший xml. Запрос к базе mysql нужно заменить на ваш. Код является лишь небольшим примером. Для начала приведу xml код простейшей rss ленты.

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Новости сайта</title>
<link>http://yandex.ru</link>
<description>Новости</description>
<item>
<title>Новость 1</title>
<link>http://test.ru/out-news/news-id-801</link>
<description>Под эгидой областного Министерства общего и ...</description>
</item>
</channel>
</rss>

 Тут все просто:

  • <rss> - открывает rss 
  • <channel> - открывает канал ленты
  • <title> - заголовок
  • <link> - Ссылка
  • <description> - описание RSS рассылки
  • <item> - открывает тело материала

Те теги которые находятся не в теге <item> относятся ко всей RSS ленте.

Перейдем к php:

 include ('connect.php'); // инклудим подключение к бд
echo '<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
 <title>Новости сайта .ru</title>
 <link>http://test.ru</link>
 <description>Новости</description>'; // открываем документ, выводим шапку рассылки

$table= mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 0,15") or die(mysql_error()); // запрос к базе
while ($row = mysql_fetch_array($table, MYSQL_BOTH)){ // тело цикла
$row2["text"]=substring($row["text"]); /* функция substring пользовательская обрезает текст из базы по пробелам чтобы не резать слово на половине, закоментируйте ее*/
echo'
<item>
<title>'.$row["name"].'</title>
 <link>http://test.ru/out-news/news-id-'.$row["id"].'</link>
<description>'.$row["text"].'</description>
</item>'; // выводи материалы

}

echo '</channel>
</rss>'; // закрываем документ

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

Для того чтоб у вас отобразилась иконка RSS в адресной строке браузера как на картинке ниже

вам нужно в на вашем сайте в теге <head> разместить код ссылающийся на ленту:

<link rel="alternate" type="application/rss+xml" title="Лента" href="/rss.xml" />

 Атрибут href и title соотвественно меняем на свой, вот сообственно и все. Будут вопросы пишите.

Добавить комментарий


Защитный код
Обновить

Поиск

Голосование

Что Вы думаете на счет битрикса?
 

Все материалы раздела