Создание RSS-ленты новостей
[h1]Создание RSS-ленты новостей[/h1] Формат RSS фактически является XML-форматом, а значит мы можем использовать возможности расширения DOM для создания RSS-ленты. Приведенный ниже код расширяет класс DOMDocument, чтобы построить дерево DOM, создавая элементы и добавляя их в соответствующую структуру.
Code: PHP
<?php
class rss2 extends DOMDocument {
private $channel;
public function __construct($title, $link, $description) {
parent::__construct();
$this->formatOutput = true;
$root = $this->appendChild($this->createElement('rss'));
$root->setAttribute('version', '2.0');
$channel = $root->appendChild($this->createElement('channel'));
$channel->appendChild($this->createElement('title', $title));
$channel->appendChild($this->createElement('link', $link));
$channel->appendChild($this->createElement('description', $description));
$this->channel = $channel;
}
public function addItem($title, $link, $description) {
$item = $this->createElement('item');
$item->appendChild($this->createElement('title', $title));
$item->appendChild($this->createElement('link', $link));
$item->appendChild($this->createElement('description', $description));
$this->channel->appendChild($item);
}
}
?>
Code:
<?php
$dblocation = 'localhost'; // Имя сервера
$dbuser = 'root'; // Имя пользователя
$dbpswrd = '123'; // Пароль
$dbname = 'mydb'; // Имя базы данных
// Соединение с сервером базы данных
$dblink = mysql_connect( $dblocation, $dbuser, $dbpswrd );
mysql_query( 'SET NAMES UTF8' );
// Выбираем базу данных
mysql_select_db( $dbname, $dblink );
$rss = new rss2('Новости по чем-то там', 'http://sec-news.ru',
'Новости по чем-то там, тому сему и этому');
$query = 'SELECT id, title, announce
FROM news
ORDER BY puttime DESC
LIMIT 10';
$res = mysql_query( $query );
while( $news = mysql_fetch_array( $res ) ) {
$rss->addItem($news['title'], 'http://sec-news.ru/news/'.$news['id'].'/', $news['announce']);
}
echo $rss->saveXML();
?>