PHP създаване на RSS Feed Generator

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
5 (100%) 19 гласа
Прочетена:4424
« Предишна публикация

WordPress плъгин за бутони за социални мрежи

Нова версия на WordPress плъгина Ganbox Sociable за споделяне на публикации в социални сайтове за споделяне на линкове. Новата версия може да изтеглиш от линка ganbox.com-sociable2 В тази версия сме добавили няколко бутона:  Google+ бутон на новата ... Повече информация »

Следваща публикация »

Речник мобилно приложение

Безплатно мобилно приложение речник за iPhone може да изтеглиш от този линк. Приложението е свързано с онлайн речника rechnik.info. Речникът към момента включва тълковен речник на думи използвани в българския език, английско-български и българо-английски речник. С ... Повече информация »

3 коментара

  1. Програмиращ 22.11.2012
споделиха