HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 01.07.2008, 20:22
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
По умолчанию

Как вывести новости из xml ? Уже от мануала голова кругом

rss.inc
PHP код:
<?php
/*   CRss версия 1.0 от 02.01.2007
*    класс для создания каналов новостей RSS
*    http://www.caseclub.ru
*    используйте без ограничений
*/
class CRss
{
 var 
$Title;          // заголовок канала
 
var $Link;           // ссылка на главную страницу
 
var $Copyright;      // копирайт
 
var $Description;    // описание канала
 
var $LastBuildDate;  // дата последнего документа (по умолчанию текущая)
 
var $Language;        // язык
 
var $PubDate;        // дата публикации
 
var $ManagingEditor;  // E-mail редактора
 
var $WebMaster;      // E-mail webmaster
 
var $Category;       // категория

 
var $Query;          // содержимое запроса
 
var $Connect;           // для соединения с базой данных
 
var $Result;         // для хранения результата

 
function Translate($text)    // кодируем для вывода
 
{


    
$trans = array("<" => "&lt;"">" => "&gt;",'"' => "&quot;","&" => "&amp;");
    
$text=strtr($text,$trans);
    
$array=explode("<br>",$text);
    
$count=count($array);
    return 
$text;

 }

 function 
Query()
 {
   
$this->Result mysql_query($this->Query) or die("Query failed");
 }
 function 
Open($Server,$DataBase,$Login,$Password)    // открыть MySql
  
{
  
$this->Connect mysql_connect($Server$Login$Password ) or die("Could not connect");
          
mysql_select_db($DataBase) or die("Could not select database");

  }
  function 
Close()  // закрыть MySql
  
{
     
mysql_free_result($this->Result);
     
mysql_close($this->Connect);
  }


 function 
PrintHeader()   // печать заголовка
 
{
      
header("Content-Type: application/xml ");   // сразу говорим, что это формат XML
       
$RN="\r\n";
      
$End="?";
      
$Date=date("r");   // дата в формате Mon, 25 Dec 2006 10:23:37 +0400
      
print "<$End";
      print 
"xml version=\"1.0\" encoding=\"windows-1251\" $End$RN";
      print 
"<rss version=\"2.0\">$RN";
      print 
"   <channel>$RN";
      print 
"       <title>$this->Title</title>$RN";
      print 
"       <category>$this->Category</category>$RN";
      print 
"       <link>$this->Link</link>$RN";
      print 
"       <copyright>$this->Copyright</copyright>$RN";
      print 
"       <description>$this->Description</description>$RN";
      print 
"       <lastBuildDate>$this->LastBuildDate</lastBuildDate>$RN";
      print 
"       <language>$this->Language</language>$RN";
      print 
"       <pubDate>$this->PubDate</pubDate>$RN";
      print 
"       <docs>http://site.ru/rss</docs>$RN";
      print 
"       <managingEditor>$this->ManagingEditor</managingEditor>$RN";
      print 
"       <webMaster>$this->WebMaster</webMaster>$RN";
}
 function 
PrintBody($Title,$Link,$Description,$Category,$PubDate)   // печать тела
{
       
$RN="\r\n";
      
//$Title =$this->Translate($Title);
      //$Link =$this->Translate($Link);
      
$Description =$this->Translate($Description);
      print 
"              <item>$RN";
      print 
"                <title>$Title</title>$RN";
      print 
"                 <link>$Link</link>$RN";
      print 
"                 <description>$Description</description>$RN";
      print 
"                 <category>$Category</category>$RN";
      print 
"                 <pubDate>$PubDate</pubDate>$RN";
      print 
"                 <guid>$Link</guid>$RN";
      print 
"              </item>$RN";
}
 function 
PrintFooter()   // печать заголовка
 
{
    print 
"   </channel>$RN";
    print 
"</rss>$RN";
 }


}
?>
rss.php
PHP код:
<?php
     
// начало программы
     
include "rss.inc";           // это собственно класс
     
include "conn.inc";           // переменные для открытия базы
     

   
$Rss= new CRss();

   
$Rss->Title="RSS Мой сайт";
   
$Rss->Link="http://site.ru/rss/";
   
$Rss->Copyright="© .";
   
$Rss->Description="Описание";
   
$Rss->Category "Разработка программного обеспечения";
   
$Rss->Language="ru";

   
$Rss->ManagingEditor="info@sandalhouse.ru";
   
$Rss->WebMaster="info@site.ru";
   
$Rss->Query="SELECT
                BLOG.title,
                BLOG.description,
                BLOG.link,
                BLOG.date,
                BLOG.category
     FROM BLOG
     ORDER by DATE desc Limit 0,20"
;

    
$Rss->Open($Server,$DataBase,$Login,$Password);
     
$Rss->LastBuildDate=date("r");
      
// получаем последнюю дату публикации
     
$query "select BLOG.DATE
                        FROM BLOG
          ORDER by BLOG.date desc Limit 0,1"
;

      
$result1 mysql_query($query)
              or die(
"FROM blog failed");

      
$line mysql_fetch_array($result1);

      
$Date =date("r",strtotime($line[0]));
       
mysql_free_result($result1);

      
$Rss->LastBuildDate=$Date;
      
$Rss->PubDate=$Rss->LastBuildDate;

     
$Rss->PrintHeader();
     
$Rss->Query();

     while (
$line mysql_fetch_array($Rss->Result))
     {   
// для каждой записи выведем
               
$Title $line[0];
               
$Description $line[1];
               
$Link=$line[2];
               
$PubDate=date("r",strtotime($line[3]));
               
$Category=$line[4];
               
$Rss->PrintBody($Title,$Link,$Description,$Category,$PubDate);
    }
    
$Rss->PrintFooter();
    
$Rss->Close();

?>
rss.xml
Код HTML:
 <?xml version="1.0" encoding="UTF-8" ?> 
  <rss version="2.0">
   <channel>
     <title>Моя лента новостей</title> 
     <link>http://www.моя_лента.ru</link> 
     <description>Самый лучший блог на свете</description> 
     <lastBuildDate>Sat, 30 Dec 2006 00:00:00 +0300</lastBuildDate> 
     <item>
         <title>С Новым Годом!</title> 
         <link>http://www.моя_лента.ru/new1.html</link> 
         <description>Поздравляем всех читателей с Новым Годом</description> 
     </item>
   </channel>
  </rss>
Табличка в базе
Код:
CREATE TABLE BLOG ( ID int(11) NOT NULL default '0', title varchar(50) default NULL, description text default NULL, link varchar(200) default NULL, date date default NULL, category varchar(100) NOT NULL default '', ab varchar(10) NOT NULL default '', PRIMARY KEY (ID) ) TYPE=MyISAM;
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ