php rss2.0,一个生成RSS2.0的php类

/*****************************************

*           rss2.0 generator

*          create by magicboy(darasion)

*          copyright ? 神奇男孩

******************************************/

/*————————————————

使用方法:

将下面的数组,带入相应的函数。

1、频道主体

$channel = array(

title => '频道名称(必备)',

link => '频道的url(必备)',

description => '频道的描述(必备)',

language => '频道文章所用语言(可选)',

webmaster => '负责频道技术事务的网站管理员email(可选)',

managingeditor => '责任编辑的email(可选)',

pubdate => '频道内容发布日期,格式遵循rfc822格式(年份可为2位或4位)(可选)',

lastbuilddate => '频道内容最后的修改日期(sat, 07 sep 2002 09:42:31 gmt)(可选)',

skipdays => '提示新闻聚合器,那些天它可以跳过。(可选)',

copyright => '频道内容的版权说明(可选)',

ttl => '有效期,用以指明该频道可被缓存的最长时间(可选)',

);

2、频道图片

$image = array(

url => '图片的链接(必备)',

title => '图片的标题,用于http的alt属性(必备)',

link => '网站的url(实际中常以频道的url代替)(必备)',

width => '图片的宽度(象素为单位)最大144,默认88(可选)',

height => '图片的高度(象素为单位)最大400,默认31(可选)',

description => '用于link的title属性(可选)'

);

3、频道项

$item = array(

title => '项(item)的标题(必备)',

description => '项的大纲(必备)',

link => '项的url(必备)',

comments => '该项的评论(comments)页的url(可选)',

guid => '1项的唯一标志符串(可选)',

author => '该项作者的email(可选)',

enclosure => '描述该附带的媒体对象(可选)',

category => '包含该项的一个或几个分类(catogory)(可选)',

pubdate => '项的发布时间(可选)',

source_url => '该项来自的rss道(可选)',

source_name => '该项来自的rss道(可选)'

);

————————————————*/

class rss2

{

var $channel_pre="";

var $str_image="";

var $str_item="";

var $channel_end="";

/*构造函数*/

function rss2($channel,$encoding="gb2312")

{

$this->channel($channel,$encoding);

}

/*生成频道主体*/

function channel($channel,$encoding="gb2312")

{

$this->channel_pre.="<?xml version=\"1.0\" encoding=\"$encoding\"?>\n";

$this->channel_pre.= "\n";

$this->channel_pre.= " \n";

$this->channel_pre.= " 

".$channel['title']."\n";//频道名称(必备)

$this->channel_pre.= "  ".$channel['link']."\n";//频道的url(必备)

$this->channel_pre.= "  ".$channel['description']."\n";//频道的描述(必备)

$this->channel_pre.= "  magicboy rss generator v1.0\n";//创建此文档的程序(可选)

if(isset($channel['language']))$this->channel_pre.= "  ".$channel['language']."\n";//频道文章所用语言(可选)

if(isset($channel['webmaster']))$this->channel_pre.= "  ".$channel['webmaster']."\n";//负责频道技术事务的网站管理员email(可选)

if(isset($channel['managingeditor']))$this->channel_pre.= "  ".$channel['managingeditor']."\n";//责任编辑的email(可选)

if(isset($channel['pubdate']))$this->channel_pre.= "  ".$channel['pubdate']."\n";//频道内容发布日期,格式遵循rfc822格式(年份可为2位或4位)(可选)

if(isset($channel['lastbuilddate']))$this->channel_pre.= "  ".$channel['lastbuilddate']."\n";//频道内容最后的修改日期(sat, 07 sep 2002 09:42:31 gmt)(可选)

if(isset($channel['skipdays']))$this->channel_pre.= "  ".$channel['skipdays']."\n";//提示新闻聚合器,那些天它可以跳过。(可选)

if(isset($channel['copyright']))$this->channel_pre.= "  ".$channel['copyright']."\n";//频道内容的版权说明(可选)

if(isset($channel['ttl']))$this->channel_pre.= "  ".$channel['ttl']."\n";//有效期,用以指明该频道可被缓存的最长时间(可选)

$this->channel_end.= " \n";

$this->channel_end.= "\n";

}

/*生成频道图片*/

function image($image)

{

if(isset($this->str_image))unset($this->str_image);

$this->str_image.= "  \n";

if(isset($image['url']))$this->str_image.= "   ".$image['url']."\n";//图片的url(必备)

if(isset($image['title']))$this->str_image.= "  

".$image['title']."\n";//图片的标题,用于http的alt属性(必备)

if(isset($image['link']))$this->str_image.= "   ".$image['link']."\n";//网站的url(实际中常以频道的url代替)(必备)

if(isset($image['width']))$this->str_image.= "   ".$image['width']."\n";//图片的宽度(象素为单位)最大144,默认88(可选)

if(isset($image['height']))$this->str_image.= "   ".$image['height']."\n";//图片的高度(象素为单位)最大400,默认31(可选)

if(isset($image['description']))$this->str_image.= "   ".$image['description']."\n";//用于link的title属性(可选)

$this->str_image.= "  \n";

}

/*频道项*/

function item($item)

{

$this->str_item.="  \n";

$this->str_item.="  

".$item['title']."\n";//项(item)的标题(必备)

$this->str_item.="   ".$item['description']."\n";//项的大纲(必备)

$this->str_item.="   ".$item['link']."\n";//项的url(必备)

if(isset($item['comments']))$this->str_item.="   ".$item['comments']."\n";//该项的评论(comments)页的url(可选)

if(isset($item['guid']))$this->str_item.="   ".$item['guid']."\n";//1项的唯一标志符串(可选)

if(isset($item['author']))$this->str_item.="   ".$item['author']."\n";//该项作者的email(可选)

if(isset($item['enclosure']))$this->str_item.="   ".$item['enclosure']."\n";//描述该附带的媒体对象(可选)

if(isset($item['category']))$this->str_item.="   ".$item['category']."\n";//包含该项的一个或几个分类(catogory)(可选)

if(isset($item['pubdate']))$this->str_item.="   ".$item['pubdate']."\n";//项的发布时间(可选)

if(isset($item['source_url']))$this->str_item.="   ".$item['source_name']."\n";//该项来自的rss道(可选)

$this->str_item.="  \n";

}

/*输出xml*/

function generate()

{

if(isset($this->channel_pre)&&isset($this->channel_end)&&isset($this->str_item))

{

header("content-type:text/xml");

echo $this->channel_pre;

echo $this->str_image;

echo $this->str_item;

echo $this->channel_end;

}

}

/*擦除频道*/

function erase_channel()

{

unset($this->channel_pre);

unset($this->channel_end);

}

/*擦除频道图片*/

function erase_image()

{

unset($this->str_image);

}

/*擦除项目*/

function erase_item()

{

unset($this->str_item);

}

/*擦除所有*/

function erase()

{

$this->erase_channel();

$this->erase_image();

$this->erase_item();

}

}

?>

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值