Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

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

Delphi , Прочее , PHP скрипты

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

<?php
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Pragma: no-cache");
    header("Content-type: text/xml; charset=windows-1251");
    require_once("ConfigDB.php");//подключение базы данных
   
   
    //-------------------------------
    // узнаём дату самой свежей статьи
    //-------------------------------
    $stmt = 'select max(datelastedit) as M from content';
    $sth = ibase_query($dbh, $stmt);
    if ($row = ibase_fetch_object($sth))
    {
        $ld=date("r", strtotime($row->M));//r - это формат времени Date and Time Specification of RFC 822
    }
    else
    {
        $ld
=date("r");
    }


    //-------------------------------
    // Формируем заголовок RSS-файла ВНИМАТЕЛЬНО устанавливаем кодировку , такую же как в header иначе IE не будет понимать наш файл
    //-------------------------------
    $output = '<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
      <title>KANSoftWare News</title>
      <link>http://www.kansoftware.ru</link>     
      <description>Новости компании KANSoftWare.</description>
      <generator>CMS kansoftware</generator>
      <docs>http://www.rssboard.org/rss-specification</docs>
      <language>ru-ru</language>
      <pubDate>'.$ld.'</pubDate>'."\n";
     
    //-------------------------------
    // запрос 25 новостей и статьи основного содержимого
    //-------------------------------
    $stmt = 'select FIRST 25 datelastedit MOD, id, body, name from content order by id DESC';
    $sth = ibase_query($dbh, $stmt);

    while ($row = ibase_fetch_object($sth))
    {
        $output .= "<item><title>{$row->NAME}</title><link>http://www.kansoftware.ru/?id={$row->ID}</link>";

        //-----------------------------------------
        // получение blob
        //-----------------------------------------
        $blob_data = ibase_blob_info($row->BODY);
        if ($blob_data[0] > 0 )
        {
            $blob_hndl = ibase_blob_open($row->BODY);
            $lbody = ibase_blob_get($blob_hndl, $blob_data[0]);
        }
        else
        {
            $lbody='';
        };
        $ltxt=html_entity_decode(substr(strip_tags($lbody),0,250));//убираем теги HTML и спец.символы, а так же откусываем первые 250 символов
        $output .= "<description>{$ltxt}...</description>";

        //-----------------------------------------
        // получение даты статьи
        //-----------------------------------------
        if (!is_null ($row->MOD))
        {
            $ldate=date("r",strtotime($row->MOD));
            $output .= "<pubDate>{$ldate}</pubDate>";
        };
       
        $output .= "<guid>http://www.kansoftware.ru/?id={$row->ID}</guid></item>\n";
    };
   
    echo ($output.'</channel></rss>');
?>

 

Описание формата и идея взята с http://www.webmagazine.biz/articles/rss-2-0-lenta-na-php-5.html там же есть пример и описание собственно формата RSS 2.0.

 

Автор KAN

Статья Создание RSS 2.0 ленты на PHP раздела Прочее PHP скрипты может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


:: 2008-12-14 12:51:19 :: Хороший блог

пользователь: Вика.

Хороший у вас блог.


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: PHP скрипты ::


реклама

::


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
04.03.2021 07:07:25/0.0035369396209717/2