SELECT * FROM Vzakladke.net

Статьи об автоматизации и программировании


Создание RSS ленты на PHP

 

 

Создать RSS ленту на PHP не так уж и трудно. Для этого достаточно понимать принцип формирования файлов XML и базовых знаний программирования, представим реализацию этого процесса на  PHP и MySQL (чтобы данные обновлялись из базы данных).

RSS (Really Simple Syndication) – это тип данных языка XML, с помощью которого сайт может обмениваться информацией с несколькими сайтами (новости) в автоматическом режиме или для презентации новостей пользователю.

С помощью RSS 2.0 передаётся краткое описание новой информации, появившейся на сайте, и ссылка на её полную версию. Интернет-ресурс в формате RSS называется RSS-каналом или RSS-лентой или RSS-фидом. Каждая RSS лента (RSS файл) должна соответствовать стандарту XML 1.0.

Рассмотрим каким образом можно формировать ответ сервера в виде RSS лента из последних новостей (в этом примере, последних 50):

 

 

header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
 
echo '<rss version="2.0">
<channel>';

$start=0;
$limit=50; 

 $data = '<title>'.SITE_NAME.'</title>'; // имя сайта
 $data.= '<link>'.URL.'</link>'; // ссылка на сайт
 $data.= '<description>'.DESCRIPTION.'</description>'; // описание сайта
 $data.= '<language>ru</language> '; // язык
 
$request = ("SELECT * FROM `wp_posts` WHERE  `post_status`='publish' AND `post_type` = 'post' 
ORDER BY ID DESC LIMIT $start, $limit"); // запрос к базе, выбираем последние опубликованные записи по типу постов
$array=$db->getarr($request); // получаем массив 

// если массив не пустой, делаем перебор:
if (!empty($array)) {
 foreach($array as $id=>$myrow) {
 $data.= '<item>'; // начало новости XML
 $data.= '<title>'.$myrow["post_title"].'</title>'; // заголовок статьи
 $data.= '<link>post/'.$myrow["guid"].'.html</link>'; // ссылка на статью
 $data.= '<description>'.strip_tags(htmlspecialchars($myrow["post_excerpt"])).'</description>'; // описание статьи
 $data.= '<author>'.EMAIL.'</author>'; // автор статьи
 $data.= '<guid>post/'.$myrow["guid"].'.html</guid>'; // ссылка
 $timestamp= date("D, d M Y H:i:s T", strtotime($article["creation_date"])); // преобразуем формат даты 
 // или можно так: date('r', $timestamp);
 $data.= '<pubDate>'.$timestamp.'</pubDate>'; // дата публикации
 $data.= '</item>'; // конец новости XML 
 } 
} 

echo $data.'</channel> 
</rss>';

Здесь используется функция strip_tags для того чтобы убрать теги, которые могут вызвать ошибку, которая может повиться при неправильном оформлении статьи, и функция htmlspecialchars для преобразования специальных символов в HTML-сущности, которую тоже применяйте по необходимости.

 

В хедер документа (то есть между <head> и </head>) необходимо добавить примерно следующую строку с указанием расположения Вашего файла, который гененрирует RSS канал:

<link rel="alternate" type="application/rss+xml" title="FEED" href="http://www.site.info/feed.php" />

 

Дата публикации: 2015-05-16 13:05:29

PHP, MySQL, XML

0

Отзывы:

Дейв Мастайн
link ссылка на страницу, содержащую полное описание события - это обязательная строка guid Уникальная строка, используемая для идентификации итема (это необязательный элемент фида).

Ваше имя:

Ваш e-mail (необязательно):

Сообщение:

Captcha