麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
一个生成RSS类
悬赏分:20 - 2007年08月21日

一个生成RSS类

CODE:
<?php
/*************************************************
* 本单元写于 :
* 作者 : 李腾秋
* E-Mail : litqqs@163.com
* 版权所有
*************************************************/
/*************************************************
作用: RSS生成器


*************************************************/
if(!defined(__FILE__))
{
define(__FILE__ , 1) ;
define('RSS_DATE_FORMAT','D, j M Y H:i:s +0800');
class rss
{
var $version='2.0';
var $xml_version='1.0';
var $channel=array();
var $encode='utf-8';
var $source_encode='gb2312';
var $css='';
function rss($title,$url,$description=''){
$this->channel['title']=$title;
$this->channel['url'] = $url;
$this->channel['description'] = $description;
$this->channel['language']='zh-cn';
$this->channel['ttl']='30';
$this->channel['generator']='LTQ RSS generator v0.1';
$this->channel['pubDate']=date(RSS_DATE_FORMAT);
$this->channel['item']=array();
}
function setCSS($value)
{
$this->css=$value;
}
function set($element, $value)
{
$this->channel[$element]=$value;
}
function setImage($title,$url,$link,$width=88,$height=31, $description='')
{
$image = array();
$image['title']=$title;
$image['url']=$url;
$image['link']=$link;
if($width > 144) $width=144;
$image['width']=$width;
if($width > 400) $width=400;
$image['height']=$height;
$image['description']=$description;

$this->channel['image']=$image;
}
function addItem($title,$link,$description,
$pubDate='',$author='', $category='', $comments='', $source='')
{
$item=array();
$item['title']=$title;
$item['link']=$link;
$item['description']=$description;
if($pubDate!='')
{
$pubDate=date(RSS_DATE_FORMAT, $pubDate);
$item['pubDate']=$pubDate;
}
if($author!='') $item['author']=$author;
if($category!='') $item['category']=$category;
if($comments!='') $item['comments']=$comments;
if($source!='') $item['source']=$source;

$this->channel['item'][]=$item;
}
function _encode()
{
$s = $this->source_encode;
$d = $this->encode;
if($s==$d) return;
if(!function_exists('iconv'))
{
$this->encode = $this->source_encode;
return ;
}
$this->__encode($this->channel);
}
function __encode( & $data)
{
if(is_string($data))
{
$data= iconv($this->source_encode, $this->encode, $data);
return ;
}
if(is_array($data))
{
foreach($data as $k=>$v)
{
$this->__encode($data[$k]);
}
return ;
}
}

function getDoc()
{
$this->_encode();
//下面这一个分开为了避免php遇到字符串 < ? ? > 时会出错,
$xml='<'.'?xml version="1.0" encoding="'.$this->encode.'"?'.'>';
if($this->css!='') $xml .='&lt;?xml-stylesheet type="text/css" href="'.$this->css.'"?&gt;';
$xml .='<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>';
foreach($this->channel as $k=>$v)
{
if(is_scalar($v))
$xml .="<{$k}>{$v}</{$k}>";
}

if(isset($this->channel['image']))
{
$xml.="<image>";
foreach($this->channel['image'] as $k=>$v)
$xml .="<{$k}>{$v}</{$k}>";
$xml.="</image>";
}

if(count($this->channel['item'])>0)
{
foreach($this->channel['item'] as $item)
{
$xml .= "<item>";
foreach($item as $k=>$v)
{
if($k=='description') $xml .="<description><![CDATA[ {$v} ]]></description>";
else $xml .="<{$k}>{$v}</{$k}>";
}
$xml .= "</item>";
}
}

$xml.='</channel></rss>';
return $xml;
}
function SaveToFile($file)
{
$f = @fopen($file,'w');
if($f)
{
fwrite($f, $this->getDoc());
fclose($f);
}else{
exit( "<div>写入文件 {$file} 失败.请确定文件夹存在且可写入.</div>");
}
}

}//end class
}//end if

//********************测试代码***********************
//$obj=new rss('我的频道','http://www.e512.net', '');
//$obj->setImage('图片标题','http://www.e512.net/images/logo.gif','http://www.e512.net');
//for($i=0;$i<9;$i++)
// $obj->addItem("标题-[{$i}]", 'http://www.e512.net','描述******* [{$i}]');
//$fp = fopen('e:\mm.xml','w');
//fwrite($fp, $obj->getDoc());
//fclose($fp);

提问者:litqqs   08-21 16:04
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
81 + 18 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM