RSSленты стали очень распространенным способом узнать об обновлении того или иного сайта. Сейчас практически на любом сайте есть такая лента, как сделать её на своем сайте посредством PHP я сейчас расскажу.
RSS (Really Simple Syndication (RSS 2.x))— XML-файл, предназначенный для описания лент новостей, анонсов статей, изменений в блогах и т. п..
<description><![CDATA[MySQL инъекции очень распространенная и наиболее опасная ошибка. С её помощью можно сделать много пакостей: от неавторизованного входа, до дефейса. Данная уязвимость позволяет злоумышленику выполнять произвольные команды на сервере базы данных.
О предмете статьи написанно много, часто пишут о фильтрации переменных регулярными выражениями кои просто увеличивают время обработки, я расскажу вам о самом простом и наиболее безопасном способе защиты.]]></description>
<category><![CDATA[Разработка программного обеспечения]]></category>
<pubDate>Wed, 02 Jun 2010 13:38:18 +0300</pubDate>
<rss> - обязательный тег, обозначает границы ленты
<channel> - обязательный тег, обозначает границы канала, в одной ленте может быть несколько каналов
<title>-заголовок ленты или анонса
<category>-категория анонса
<link>-ссылка на страницу где находится анонс
<copyright>-кому принадлежит фид
<description>-описание ленты или текст анонса
<lastBuildDate>-дата последнего создания
<language>- язык ленты
<pubDate>-дата публикации
<item>-обязательный тег, обозначает границы анонса
Вы наверное заметили конструкцию <![CDATA[SomeText]], она позволяет вставлять тексты на нестандартных языках и теги
Для создания ленты я использую класс найденный на просторах гугля, и немного подредактированный мной для прохождения валидности.
class CRss { var $Title; // заголовок канала var $Link; // ссылка на главную страницу var $Copyright; // копирайт var $Description; // описание канала var $LastBuildDate; // дата последней сборки документа (по умолчанию текущая) var $Language; // язык var $PubDate; // дата публикации var $ManagingEditor; // редактор var $WebMaster; // вебмастер var $Category; // категория канала
function Translate($text) // кодируем для вывода в поток { $text=stripslashes($text); $text=strip_tags($text,"<img><b><br><h1><a><object><param><embed>");//мы оставим только некоторые теги
return $text; }
function PrintHeader() // печать заголовка { header("Content-Type: application/rss+xml "); // сразу говорим, что это формат rss и XML $RN="rn";//каждый тег отделяется переводом строки $End="?";