Ganbox.com предоставя безплатно един PHP клас за бързо създаване на динамична RSS емисия с новини, които се извличат от базата данни на твой сайт.
Целта при написването на този клас е:
1. Да се използва лесно и удобно с кратък запис. Има включен пример в кода.
2. Да се валидира XML кода на RSS-а от валидатора http://feedvalidator.org
3. Да няма проблем с кирилицата, включително URL адреси на кирилица.
4. Да работи и на по-старата PHP версия 4, за да може да се ползва на по-стари сайтове.
Софтуерът се предлага безплатно под лиценза Creative Commons 3.0 – http://creativecommons.org/licenses/by/3.0/deed.bg
Създаване на RSS емисия с PHP
За този пример ще предположим, че на твоя сайт sait.com имаш новини, които стоят в база данни в таблица с име news. Таблицата има следните полета: id – номер на новина; title – заглавие на новина; body – текст на новината; date – дата на създаване. Предполага се още, че URL адресите на всяка новина имат следния вид: http://sait.com/news.php?id=2 и вече има направена връзка към базата данни във файл db.php.
Изтегли файла Ganbox.com RSS Feed Generator и го разархивирай. Ще получиш файла class.rss_feed.php. Може да го поставиш в главната уеб директория на сайта. Там създай файла feed.php, който ще генерира твоя RSS и ще има следното съдържание:
include(„class.rss_feed.php“); // включва класа за RSS
include(„db.php“); // връзка с базата данни
$feed = new RSSFeed(); // създава обект
$feed->init(
‘RSS на sait.com’, // Заглавие на RSS емисия
‘http://sait.com/feed.php’, // URL адрес на RSS емисия
‘RSS с новините на сайт sait.com’ // Описание на емисията
,’utf-8′ // Енкодинг на емисията (по подразбиране е utf-8 и може да се изтрие този ред)
);
$news=get_last_news(10); // връща последните 10 новини
foreach($news as $one){
//Добавяне на една публикация
$item = new Item();
$item->setItemTitle($one[‘title’]);
$one_url = ‘http://sait.com/news.php?id=’.$one[‘id’]; // URL адрес на новината
$item->setItemLink($one_url); // URL адрес на публикация
$item->setItemDate($one[‘date’]); // дата на публикация, формат YYYY-MM-DD HH:MM:SS
$item->setItemDesc($one[‘body’]);
$feed->addItem($item);
}
$feed->createFeed(); // създава и отпечатва целия XML на RSS-а
// Примерна функция за извличане на последните count новини
function get_last_news($count=1) {
$ret = array();
$query = „SELECT * FROM news ORDER BY id DESC LIMIT $count“;
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
if($num_rows){
while($row = mysql_fetch_assoc($result)){
$ret[] = $row;
}
}
return $ret;
}
Ако новините в базата данни не са в енкодинг utf-8 и има проблем с кирилицата опитай следното:
1. Промени четвъртия параметър на функция init() от ‘utf-8′ на ‘cp1251′.
2. Увери се, че файла feed.php има енкодинг cp1251.
За добавяне на лого към RSS емисията, след извикването на init() преди реда с get_last_news() постави:
$rss_title = ‘RSS на sait.com’; // трябва да съвпада със заглавието на RSS-а
$rss_url = ‘http://sait.com/feed.php’; // трябва да съвпада с URL адреса на RSS-а
$img_url = ‘http://sait.com/logo.png’; // URL адрес на логото (приема само JPG, GIF и PNG)
$img_width = 100; // ширина на логото в пиксели
$img_height = 100; // височина на логото
$feed->setFeedImage($rss_title, $img_url, $rss_url, $img_width, $img_height);
Също така, когато това е необходимо, класа прави много лесно добавянето на прикачен файл към публикация с таг enclosure, като сам пресмята размера на файла и определя типа на файла.
Разбира се освен за новини кода може да се ползва и за създаване на емисия с последните продукти на електронен магазин, който да даде възможност на потребителите да се абонират.
След като създадеш своите RSS канали, е добра идея да се прекарат през Google Feedburner и след това да се постави линк в началната страница на сайта към тях. Ако имаш нужда от помощ със създаването на твоите RSS емисии, както и по-нататъшното им ползване за SEO цели, може да се свържеш с нас.
Кодът е изпробван под PHP версии 4 и 5. Също така има работещо копие на класа на силно посещаван сайт.
За всякакви коментари по кода пиши в тази тема.
PHP създаване на RSS Feed Generator, 8.9 out of 10 based on 9 ratings Прочетена:2624