@author songfeng
RSS0.9/1.0/2.0 ATOM 全部是内容聚合的应用,优点一是浏览者可以订阅其网站,能收到最新的网站更新内容.二是有利于搜索引擎抓取.个人感觉缺点是会被其它网站当成复制品,批量 抓取网站更新内容, 但这也许又不是坏事. RSS标准有些乱, 0.9和2.0 与1.0各有其主, ATOM是一个博客网站BLOGGER引入的, 由GOOGLE发扬光大, 但还是遵循RSS2.0的网站较多, 说白了两家只是标 准之争. 用户体验都一样.
Zend_Feed对RSS和ATOM进行了简单封装,实现的功能大致包装指定网站FEED的抓取,XML文件抓取, 字符串抓取, 数组抓取, 生成FEED, 生成并输出FEED.
通用结构如下
当然详细的KEY您就要参考相关手册了,上面的entries其实就是RSS的item.
rss atom 元素名称对比
title title 网站标题
link id 网站地址
description subtitle 网站描述
pubDate updated 网站更新时间
entries内(RSS为Item):
title title 每篇文章标题
link id 每篇文章链接地址
description summary 每篇文章的描述
pubDate updated 每篇文章的发布时间
这是最后的程序代码, 我是放在MODEL里的, 很简易,没怎么构思, 只是基本的思想, 当然我们可以换成更巧妙的方式去实现它, 或者自己手动生成, 只有最基本的功能就是把网站最新的文章前30篇做为FEED
RSS0.9/1.0/2.0 ATOM 全部是内容聚合的应用,优点一是浏览者可以订阅其网站,能收到最新的网站更新内容.二是有利于搜索引擎抓取.个人感觉缺点是会被其它网站当成复制品,批量 抓取网站更新内容, 但这也许又不是坏事. RSS标准有些乱, 0.9和2.0 与1.0各有其主, ATOM是一个博客网站BLOGGER引入的, 由GOOGLE发扬光大, 但还是遵循RSS2.0的网站较多, 说白了两家只是标 准之争. 用户体验都一样.
Zend_Feed对RSS和ATOM进行了简单封装,实现的功能大致包装指定网站FEED的抓取,XML文件抓取, 字符串抓取, 数组抓取, 生成FEED, 生成并输出FEED.
通用结构如下
array(
'title'
'description'
'link'
'charset'
'language'
'entries' => array (
array(
'title'
'link'
'description'
'author'
'category'
'pubDate')
)
)
当然详细的KEY您就要参考相关手册了,上面的entries其实就是RSS的item.
rss atom 元素名称对比
title title 网站标题
link id 网站地址
description subtitle 网站描述
pubDate updated 网站更新时间
entries内(RSS为Item):
title title 每篇文章标题
link id 每篇文章链接地址
description summary 每篇文章的描述
pubDate updated 每篇文章的发布时间
这是最后的程序代码, 我是放在MODEL里的, 很简易,没怎么构思, 只是基本的思想, 当然我们可以换成更巧妙的方式去实现它, 或者自己手动生成, 只有最基本的功能就是把网站最新的文章前30篇做为FEED
$sql = 'SELECT archive_id, title, content, author, dateline FROM archives ORDER BY dateline DESC LIMIT 30';
$stmt = $this->_db->query($sql);
while($row = $stmt->fetch()) {
$rssRow['title'] = $row['title'];
$rssRow['link'] = 'http://' . $_SERVER['SERVER_NAME'] . '/article-view-' . $row['archive_id'] . '.shtml';
$rssRow['description'] = isset($row['content']) ? $row['content'] : '内容为空';
$rssRow['author'] = $row['author'];
$rssRow['pubDate'] = date('Y年m月d日 H:i', $row['dateline']);
$rssDB[] = $rssRow;
}
$rss['title'] = $setting->setting_web_title;
$rss['description'] = $setting->setting_web_title_desc;
$rss['link'] = 'http://' . $_SERVER['SERVER_NAME'];
$rss['charset'] = 'utf-8';
$rss['language'] = 'zh-cn';
$rss['entries'] = $rssDB;
try {
$feed = Zend_Feed::importArray($rss);
}catch(Zend_Exception $e) {
echo $e->getMessage();
exit;
}
return $feed->saveXml();