PHP 生成RSS类的解决办法
内容摘要
这篇文章主要为大家详细介绍了PHP 生成RSS类的简单示例,具有一定的参考价值,可以用来参考一下。PHP生成RSS的类,对此感兴趣的朋友,看看idc笔记做的技术笔记。经测试代码如下:
文章正文
这篇文章主要为大家详细介绍了PHP 生成RSS类的简单示例,具有一定的参考价值,可以用来参考一下。
PHP生成RSS的类,对此感兴趣的朋友,看看idc笔记做的技术笔记。经测试代码如下:
/**
* 生成RSS的类
*
* @param
* @arrange (www.idcnote.com)
* $feed = new RSS();
* $feed->title = "RSS Feed Title";
* $feed->link = "http://website.com";
* $feed->description = "Recent articles on your website.";
* $db->query($query);
* $result = $db->result;
* while($row = mysql_fetch_array($result, MYSQL_ASSOC))
* {
* $item = new RSSItem();
* $item->title = $title;
* $item->link = $link;
* $item->setPubDate($create_date);
* $item->description = "<![CDATA[ $html ]]>";
* $feed->addItem($item);
* }
* echo $feed->serve();
**/
class RSS
{
var $title;
var $link;
var $description;
var $language = "en-us";
var $pubDate;
var $items;
var $tags;
function RSS()
{
$this->items = array();
$this->tags = array();
}
function addItem($item)
{
$this->items[] = $item;
}
function setPubDate($when)
{
if(strtotime($when) == false)
$this->pubDate = date("D, d M Y H:i:s ", $when) . "GMT";
else
$this->pubDate = date("D, d M Y H:i:s ", strtotime($when)) . "GMT";
}
function getPubDate()
{
if(empty($this->pubDate))
return date("D, d M Y H:i:s ") . "GMT";
else
return $this->pubDate;
}
function addTag($tag, $value)
{
$this->tags[$tag] = $value;
}
function out()
{
$out = $this->header();
$out .= "<channel>\n";
$out .= "<title>" . $this->title . "</title>\n";
$out .= "<link>" . $this->link . "</link>\n";
$out .= "<description>" . $this->description . "</description>\n";
$out .= "<language>" . $this->language . "</language>\n";
$out .= "<pubDate>" . $this->getPubDate() . "</pubDate>\n";
foreach($this->tags as $key => $val) $out .= "<$key>$val</$key>\n";
foreach($this->items as $item) $out .= $item->out();
$out .= "</channel>\n";
$out .= $this->footer();
$out = str_replace("&", "&", $out);
return $out;
}
function serve($contentType = "application/xml")
{
$xml = $this->out();
header("Content-type: $contentType");
echo $xml;
}
function header()
{
$out = '<?xml version="1.0" encoding="utf-8"?>' . "\n";
$out .= '<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">' . "\n";
return $out;
}
function footer()
{
return '</rss>';
}
}
class RSSItem
{
var $title;
var $link;
var $description;
var $pubDate;
var $guid;
var $tags;
var $attachment;
var $length;
var $mimetype;
function RSSItem()
{
$this->tags = array();
}
function setPubDate($when)
{
if(strtotime($when) == false)
$this->pubDate = date("D, d M Y H:i:s ", $when) . "GMT";
else
$this->pubDate = date("D, d M Y H:i:s ", strtotime($when)) . "GMT";
}
function getPubDate()
{
if(empty($this->pubDate))
return date("D, d M Y H:i:s ") . "GMT";
else
return $this->pubDate;
}
function addTag($tag, $value)
{
$this->tags[$tag] = $value;
}
function out()
{
$out .= "<item>\n";
$out .= "<title>" . $this->title . "</title>\n";
$out .= "<link>" . $this->link . "</link>\n";
$out .= "<description>" . $this->description . "</description>\n";
$out .= "<pubDate>" . $this->getPubDate() . "</pubDate>\n";
if($this->attachment != "")
$out .= "<enclosure url='{$this->attachment}' length='{$this->length}' type='{$this->mimetype}' />";
if(empty($this->guid)) $this->guid = $this->link;
$out .= "<guid>" . $this->guid . "</guid>\n";
foreach($this->tags as $key => $val) $out .= "<$key>$val</$key\n>";
$out .= "</item>\n";
return $out;
}
function enclosure($url, $mimetype, $length)
{
$this->attachment = $url;
$this->mimetype = $mimetype;
$this->length = $length;
}
}
/*** 来自php教程(www.idcnote.com) ***/
注:关于PHP 生成RSS类的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释