php rss操作,php 生成 RSS 类

以下包含了两个类: RSS 和 RSSItem。

创建一个新的 RSS 对象,然后用 RSSItems 填充它。支持多媒体(音频/视频文件)。

/* 实例 -----------------------------------------------

$feed = new RSS();

$feed->title = "RSS Feed 标题";

$feed->link = "http://runoob.com";

$feed->description = "RSS 订阅列表描述。";

$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 = "";

$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 .= "\n";

$out .= "

" . $this->title . "\n";

$out .= "" . $this->link . "\n";

$out .= "" . $this->description . "\n";

$out .= "" . $this->language . "\n";

$out .= "" . $this->getPubDate() . "\n";

foreach($this->tags as $key => $val) $out .= "$val$key>\n";

foreach($this->items as $item) $out .= $item->out();

$out .= "\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 .= '' . "\n";

return $out;

}

function footer()

{

return '';

}

}

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 .= "\n";

$out .= "

" . $this->title . "\n";

$out .= "" . $this->link . "\n";

$out .= "" . $this->description . "\n";

$out .= "" . $this->getPubDate() . "\n";

if($this->attachment != "")

$out .= "";

if(empty($this->guid)) $this->guid = $this->link;

$out .= "" . $this->guid . "\n";

foreach($this->tags as $key => $val) $out .= "$val$key\n>";

$out .= "\n";

return $out;

}

function enclosure($url, $mimetype, $length)

{

$this->attachment = $url;

$this->mimetype = $mimetype;

$this->length = $length;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值