ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

01.07.2008, 20:22
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
Как вывести новости из 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("<" => "<", ">" => ">",'"' => ""","&" => "&");
$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;
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|