Zend_Feed 的项目实际应用

本文探讨了RSS和Atom在内容聚合中的应用及其优缺点,分析了两种标准之间的差异,并通过实例展示了如何使用Zend_Feed组件来抓取和生成Feed。
  @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.
通用结构如下
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();

           

转载于:https://www.cnblogs.com/silvester/archive/2009/04/10/1694661.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值