YurecNT

Как сделать ленту новостей RSS

Вот буквально вчера я над этим задумался.... У меня есть скрипт для создания sitemap.xml, казалось, надо в нем просто переделать несколько строк и будет RSS... Не тут то было... Дело в том, что данный скрипт склаывает в корень сайта файл... В RSS это не обязательно, ибо сам php-скрипт может восприниматься как xml-rss...

Конечно, кажется, что трудного - вывести на экран xml-поток новостей, загрузить в агрегатор и радоваться?

Во первых, чтобы браузер или агрегатор воспринимал PHP как XML, нужно выставить заголовок - header("Content-type: text/xml;");

Затем посмотреть в любом примере код xml-файла или почитать документацию... Заходим на любой портал, Яндекс например, заходим в новости и везде есть справа - подписаться на RSS, жмем.... Огне-лис показывает список новостей, гугл-хром - пустую страницу... В любом браузере нажимаем правой кнопкой мыши и выбираем - просмотр кода страницы и получаем текст прямо XML-файла...

Нет ни чего сложного, позаимствовать заголовок и вывести его в начале файла... Так и делаем...

Потом в ход идет PHP-скрипт который проходит по базе данных, собирает последние записи и выводит их в поток в нужном нам формате...

И в самом конце - заключительная часть - футер XML-файла...

Кажется, все отлично, все должно работать, но RSS-агрегатор начинает ругаться, что не понимает этот XML... Мазила - показывает урезанную страницу, в лучшем случае - заголовок, скрипт чтения RSS - сыплет ошибками....

Начинаем гуглить - RSS-валидаторы... Мне понравился этот...

Оказывается, там масса тонкостей.... В заголоке ответа (PHP) не указана кодировка, лента конечно читабельна, но валидатор предупреждает, что лучше - казать, изменяем header("Content-type: text/xml;"); на header("Content-type: text/xml; charset=utf-8");

Затем, идет ругань на различные символы... приходится писать - скрипт подмены символов, так как они не допустимы в xml...

Еще по шапке - валидатор ругается на пропущенный элемент atom...

Выглядеть он должен примерно  так - (идет первым после

где прописан адрес где находится RSS-лента...

Но после добавления валидатор снова ругается, на то, что не описан элемент атом...

Далее - в заголовке идет логотип... в принципе - поле не обязательное, но желательное... поля link и title - у картинки и у ленты - должны совпадать. Это в принципе - все....

Конечно, кто пользуется готовыми CMS не придется страдать написанием или адаптацие скрипта.. Так как там уже все включено... Но проверить на валидность - стоит... Но если у вас - самописный движок, то этот материал будет вам чрезвычайно полезен =)

Обновление:

Сейчас я RSS генерирую автоматически, но теперь с поддержкой сервиса Яндекс.Турбо, то есть, если зайти на сайт по ссылке https://new.yurecnt.ru/rss/info-0-999.xml  можно увидеть первые 999 страниц и оно проходит валидацию у Яндекса.

По сути отрабатывает модуль /rss/ и выдает нужное количество записей, больше 999 делать не надо, так как Яндекс за один прием не возьмет больше.


Рейтинг: 69

Обновлено: 09.10.2024

Информация об авторе

Евдокимов Юрий Владимирович

Я начал свою карьеру программистом в возрасте около 17 лет.

Изначально я хотел стать электриком, но что-то пошло не так - мне подарили первый компьютер... не рабочий... Сказали починишь - п ....

Администратор сайта


Все статьи автора

Благодарности: 1

Рейтинг: 2

Поддержать автора


СБП (Сбер) 9221301778

Самое читаемое:
Все о загрузочных флешках, дисках и ссд
Все о загрузочных флешках, дисках и ссд
Загрузимся хоть с загрузочного ....
14.09.2024
Публикация базы данных 1С
Публикация базы данных 1С
Не большой мануал по настройке ....
09.09.2023
Бесплатные программы для работы с разделами жесткого диска
Бесплатные программы для работы с разделами жесткого диска
краткий обзор бесплатных прогр ....
17.05.2024
Windows XP SP 2 слетел драйвер дисковода CD/DVD (2015 г.)
Windows XP SP 2 слетел драйвер дисковода CD/DVD (2015 г.)
И такое бывало.... мало ли, пу ....
16.05.2024
Windows 3.11 - полный дистрибутив!
Windows 3.11 - полный дистрибутив!
старые окна ....
03.09.2023
Не Play Market-ом единым
Не Play Market-ом единым
Свободное ПО для Android ....
04.11.2023
1С Бухгалтерия - ошибка формата потока (3.0.88.22)
1С Бухгалтерия - ошибка формата потока (3.0.88.22)
1С Бухгалтерия - ошибка формат ....
16.05.2024
Как сбросить пароль Windows 7-10
Как сбросить пароль Windows 7-10
Входим в нее...... ....
17.08.2024
Установка OwnCloud на Linux Debian 11 или 12
Установка OwnCloud на Linux Debian 11 или 12
Отличное облачное решение для ....
17.05.2024
Frontol XPOS Настройка копии чека
Frontol XPOS Настройка копии чека
FrontolXPOS - настраиваем печа ....
16.05.2024
Простое лимитирование дискового пространства Linux
Простое лимитирование дискового пространства Linux
Разделяй и влавствуй над диско ....
09.10.2024
Убираем из адресной строки www
Убираем из адресной строки www
убираем зеркала сайтов исключа ....
13.08.2023
Многофункциональный обработчик кнопок JQuery
Многофункциональный обработчик кнопок JQuery
Многофункциональный обработчик ....
13.08.2023
В браузерах лезет реклама
В браузерах лезет реклама
Убираем рекламные вирусы ....
01.01.1970
Обновляем Debian с 11 на 12!
Обновляем Debian с 11 на 12!
Обновляем операционку почти бе ....
16.05.2024
Как разблокировать системный реестр Windows
Как разблокировать системный реестр Windows
Если нельзя, но очень хочется ....
16.05.2024
Windows PE
Windows PE
Спасение утопающих в руках уто ....
28.09.2024
QBasic 4.5
QBasic 4.5
Древние языки ....
13.09.2024
Брут http-авторизации на PHP
Брут http-авторизации на PHP
Взлом HTTP-авторизации ....
09.10.2024
Программы восстановления удаленных файлов
Программы восстановления удаленных файлов
Реанимируем почти убитое ....
16.05.2024
LanScope 2.9.1
LanScope 2.9.1
Простая программа для сканиров ....
11.08.2023
Опыт заработка на сайте
Опыт заработка на сайте
Можно ли нормально заработать ....
25.01.2023
Установка Debian и Ubuntu по сети через PXE
Установка Debian и Ubuntu по сети через PXE
бездисковая установка линукс! ....
16.05.2024
Как установить mod_rewrite
Как установить mod_rewrite
Всякие редиректы и ЧПУ ....
16.05.2024
Настройка spamassassin для работы с MySQL
Настройка spamassassin для работы с MySQL
Боремся со спамом ....
01.01.1970
Бесплатный SSL-сертификат и настройка Nginx
Бесплатный SSL-сертификат и настройка Nginx
Бесплатные ssl сертификаты ....
16.05.2024
Ускорение работы сайта
Ускорение работы сайта
Ускоряем сайт с помощью настро ....
26.05.2024
Python - самообучающийся чат-бот для Телеграмм
Python - самообучающийся чат-бот для Телеграмм
скачать бесплатно бота для тел ....
16.05.2024
PHP-скрипт антибот
PHP-скрипт антибот
Не даем шерстить сайт вредным ....
16.05.2024