Короткий посібник з формування rss стрічок

Після того, як я виявив в мережі Інтернет, що все прогресивне людство давно вже користується форматом RSS (R eally S imple S yndication) для передачі новин, а я прикрутив сіё дитя шкодливою думки до сайту. Потім ще до одного. І ще. В процесі прикручування оного дитяти до різних сайтах, я зіткнувся з деякими проблемами, які мені довелося вирішувати, чим і поспішаю поділитися. Отже, по порядку.

Почнемо ab ovo. Що з себе являє формат RSS в самому мінімальному вигляді, видно з наведеного нижче прикладу:

Природно, що в такому вигляді він нікому і даром не потрібний, але не поспішайте, це тільки приказка, казка вся попереду. Отже, що ми маємо з гусака? Перший рядок говорить нам про те, що це мова розмітки XML і кодування тексту всередині windows-1251. Звичайно, найбільш правильним було б використовувати UTF-8, як це рекомендується в документації до XML, але оскільки допускаються будь-які стандартні кодування. Не будемо мудрувати лукаво і возмем кодування, яка використовується для документів нашого сайту. Можлива також кодування koi8-r або будь-яка інша за Вашим вибором.

Другий рядок це відкриває тег . який містить службову інформацію. Дану інформацію не чіпайте і пишіть без змін. В кінці прикладу ми бачимо закриває тег . усередині тега вкладений тег . що складається з обов'язкових непустих елементів: ,<link> і <description>. Дані про ці елементи зведені в таблицю:<br></p> <p>Назва вашого каналу. Саме з цього назвою і будуть посилатися на Ваш ресурс. Якщо Ви це робите для свого веб - просто впишіть назву свого сайту.</p> <p><title>Портал Єгора Наклоняева

Короткий опис каналу.

Сайт Єгора Наклоняева і Сигізмунда трахеї - людоведов і душолюбами. Сайт присвячений нахилу, його пропаганді і практичному застосуванню

Тепер, про необов'язкових елементах.


Ну, а тепер збираємо все разом. Вставка виділена жирним шрифтом.

Якщо ми робимо RSS вручну, то тепер при появі чергової новини ми просто додаємо її в фаил, стираючи в міру необхідності старі. В принципі, без різниці куди додавати черговий блок, але красивіше коли він йде в зворотному хронологічному порядку. наприклад:


А це дуже свіже



RSS - в маси, а маси. або RSS для розумово інших


А це мотлох

Слід нагадати, що якщо ви хочете використовувати в форматі XML, припустимо, в елементі теги HTML, то згідно зі стандартом. правильно буде або замінити всюди відкриває і закриває дужки на lt; gt ;, а лапки на "або використовувати спеціальні дужки:

Якийсь текст з тегами

]]>

Змініть атрибут href і буде Вам щастя.

Тепер про програмування цього всього на PHP в динамічному режимі. Думаю, що людині знайомому з азами PHP зробити висновок файлу в описаному форматі не буде складно, завдання тривіальне, але є одне "але". Справа в тому, що треба правильно сформувати заголовки. Оскільки агрегатори можуть звертатися до Вашого ресурсу досить часто, непогано щоб вони отримували відкоша, якщо ніяких змін на сайті немає. Для цього в HTTP-заголовку прописуються такі речі:

header ( "Content-type: text / xml");
header ( "Last-Modified. $ MypubDate");
header ( "Etag." $ MyETAG "");

Залишу на Ваш розсуд формування елемента Etag. Я, особисто, використовую timestamp найсвіжішої новини плюс якусь службову інформацію. Але, можливо, до видачі перерахованого вище може і не дійти, оскільки спершу треба перевірити заголовки виклику і в разі, якщо у нас нічого не змінилося повернути код помилки HTTP 304 Not Modified. Фрагмент коду, який здійснює перевірки, наведено нижче.

Зверніть увагу: всі дати в заголовках HTTP повинні формуватися тільки відповідно до стандарту RFC 1123. Коректний формат дати, відповідний даному стандарту, можна отримати, наприклад, наступним чином: $ MyGMTtime = gmdate ( "D, d MYH: i: s", $ mytime). "GMT";

Можу ще додати для допитливих:

  • Що крім формату RSS є ще активно розробляється формат Atom. в даний момент версії 0.3 і остаточно не затверджений. Деякі сайти вже видають новини і в цьому форматі, але я поки не поспішаю.
  • Існує ще формат CDF або Microsoft Active Channel. Даний формат також освоєний і застосовується. Так, на головній сторінці цього сайту встановлена ​​внизу зліва відповідна кнопка, яку видно при наявності у Вас IE 4.0 і вище. Але, як показала практика, інтересу він не представляє. Досить корявий механізм і незручний у використанні.

Додаткова література:

Схожі статті