RSS Generator

Статус
В этой теме нельзя размещать новые ответы.

pavlenkora

Гуру форума
Регистрация
8 Окт 2008
Сообщения
188
Реакции
81
Вот какая задача!
Есть сайт на php, нужно создать на этом сайте Rss канал для всех его страниц!
Есть скрипт RSS_GENERATOR
PHP:
<?

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CLASS NAME      : RSS_GENERATOR                                                                        //
// LANGUAGE        : PHP                                                                                  //
// LANGUAGE VERSION: 5.0                                                                                  //
// AUTHOR          : Julien PACHET                                                                        //
// EMAIL           : j|u|l|i|e|n| [@] |p|a|c|h|e|t|.|c|o|m                                                //
// VERSION         : 1.0                                                                                  //
// DATE            : 10/09/2005                                                                           //
////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// History:                                                                                               //
// class based from php class easy-rss                                                                    //
//   by Paulius Lescinskas (http://www.phpclasses.org/browse/package/1820.html)                           //
// -------                                                                                                //
//  Date        Version   Actions                                                                         //
// ------------------------------------------------------------------------------------------------------ //
//  10/09/2005  0.9       Tested version                                                                  //
//  10/09/2005  1.0       Prod version                                                                    //
////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// What the class need:                                                                                   //
// * Nothing                                                                                              //
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// What the class do:                                                                                     //
// * Generate RSS feed from array of items                                                                //
////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Declaration                                                                                            //
// -----------                                                                                            //
// rss_generator($title)                                                                                  //
//   magic function __get                                                                                 //
//   magic function __set                                                                                 //
//   get($items)                                                                                          //
////////////////////////////////////////////////////////////////////////////////////////////////////////////

class rss_generator {

	private $_encoding="UTF-8";
	private $_title="";
	private $_language="en-us";
	private $_description="";
	private $_link="";
	private $_generator="rss_generator";
	private $_version="2.0";

	public function __construct($title) {
		$this->_title=$title;
	}
	public function __get($name) {
		if ($name=='encoding')		return $this->_encoding;
		if ($name=='title')		return $this->_title;
		if ($name=='language')		return $this->_language;
		if ($name=='description')	return $this->_description;
		if ($name=='generator')		return $this->_generator;
		if ($name=='link')		return $this->_link;
	}
	public function __set($name,$value) {
		if ($name=='encoding')		$this->_encoding=stripslashes($value);
		if ($name=='title')		$this->_title=stripslashes($value);
		if ($name=='language')		$this->_language=stripslashes($value);
		if ($name=='description')	$this->_description=stripslashes($value);
		if ($name=='generator')		$this->_generator=stripslashes($value);
		if ($name=='link')		$this->_link=stripslashes($value);

	}

	/**
	Make an xml document of the rss stream
	@param: items: n row of associative array with theses field:
			'title': title of the item
			'description': short description of the item
			'pubData': publication timestamp of the item
			'link': url to show the item
	@result: xml document of rss stream
	**/
	public function get($items) {
		$res="";
		// header
		$res.="<?xml version=\"1.0\" encoding=\"".$this->_encoding."\"?>\n";
		$res.="<rss version=\"2.0\">\n";
		$res.="\t<channel>\n";
		$res.="\t\t<title><![CDATA[".$this->_title."]]></title>\n";
		$res.="\t\t<description><![CDATA[".$this->_description."]]></description>\n";
		$res.="\t\t<link>".$this->_link."</link>\n";
		$res.="\t\t<language>".$this->_language."</language>\n";
		$res.="\t\t<generator>".$this->_generator."</generator>\n";
		//items
		foreach($items as $item) {
	        	//$date = date("r", stripslashes($item["pubDate"]));
		        $res.="\t\t<item>\n";
			$res.="\t\t\t<title><![CDATA[".stripslashes($item["title"])."]]></title>\n";
		        $res.="\t\t\t<description><![CDATA[".stripslashes($item["description"])."]]></description>\n";
	        	if (!empty($item["pubDate"]))
				$res.="\t\t\t<pubDate>".date("r", stripslashes($item["pubDate"]))."</pubDate>\n";
			if (!empty($item["link"]))
				$res.="\t\t\t<link>".stripslashes($item["link"])."</link>\n";
			$res.="\t\t</item>\n";
		}
		//footer
		$res.="\t</channel>\n";
		$res.="</rss>\n";
		return $res;
	}
}

?>

Но что нужно с ним делать знаний, к сожалению не хватает. Подскажите, каков принцип работы этого генератора, и как его заставить работать!
 
Вот какая задача!
Есть сайт на php, нужно создать на этом сайте Rss канал для всех его страниц!
Есть скрипт RSS_GENERATOR
Но что нужно с ним делать знаний, к сожалению не хватает. Подскажите, каков принцип работы этого генератора, и как его заставить работать!

Для того, чтобы дать хоть какой-то более-менее определенный ответ скажите на каком движке построен ваш сайт.
 
Движка нет, это автоматически сгенерированные страницы по заданному шаблону.
На сайте нет БД.

Пользуйтесь.
PHP:
<?
echo("<?xml version=\"1.0\" encoding=\"windows-1251\" ?>\r\n");
echo("<rss version=\"2.0\">\r\n");
echo("<channel>\r\n\r\n");
echo("<title>Это лента RSS!</title>\r\n");
echo("<link>http://".$_SERVER['HTTP_HOST']."/</link>\r\n");
echo("<description>Описание нашей ленты RSS!</description>r\n");
echo("<copyright>Copyright 2009, ".$_SERVER['HTTP_HOST']."</copyright>\r\n\r\n");

$dirop = opendir("./");
while (gettype($file=readdir($dirop)) != 'boolean')
{
if ($file != "." && $file != ".." && ereg(".html",$file))
{
$file_handle = fopen($file, "r");
$line = "";
while (!feof($file_handle)) {
   $line .= fgets($file_handle);
}
preg_match_all("#<title>(.*)</title>#i",$line,$retval);
preg_match_all("#<p>(.*)</p>#i",$line,$retval2);
fclose($file_handle);
	echo("\r\n<item>\r\n");
	echo("<title>".$retval[1][0]."</title>\r\n");
	echo("<link>http://".$_SERVER['HTTP_HOST']."/".$file."</link>\r\n");
	echo("<description><![CDATA[".$retval2[1][0]."]]></description>\r\n");
	echo("</item>\r\n\r\n");
}
}
closedir($dirop);
echo("</channel>\r\n");
echo("</rss>\r\n");
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху