设为首页收藏本站
查看: 92|回复: 0

[PHP] Yii框架整合Zend库函数生成WebFeed

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2014-5-16 09:11:00 | 显示全部楼层 |阅读模式
    Web feed是一种用于为用户提供经常更新内容的数据格式。在这篇文章中,我们描述了怎样使用组件Zend_Feed,它是一个优秀框架Zend Framework的优秀组件,可以为一个Yii应用生成Web feed。这篇文章同样是一篇如何使用Zend Framework的组件的教程。
    首先,我们下载 Zend Framework 并解压至目录protected/vendors/Zend(农夫庄园注:需要下载zf1,官方需要注册才能下载,这里我把自己下载的放到百度网盘上供大家下载)。确保文件protected/vendors/Zend/Feed.php存在。
    然后,在SiteController(也可以是其他控制器),创建一个feed action,代码如下:
    Yii::import('application.vendors.*'); require_once('Zend/Feed.php'); require_once('Zend/Feed/Rss.php'); //不加这行会报错 public function actionFeed() { // retrieve the latest 20 posts $posts=Post::model()->findAll(array( 'order'=>'createTime DESC', 'limit'=>20, )); // convert to the format needed by Zend_Feed $entries=array(); foreach($posts as $post) { $entries[]=array( 'title'=>$post->title, 'link'=>$this->createUrl('post/show',array('id'=>$post->id)), 'description'=>$post->content, //如果时间输出为字符串会报错:A non well formed numeric value encountered 'lastUpdate'=>date("d",strtotime($post->updateTime)), ); } // generate and render RSS feed $feed=Zend_Feed::importArray(array( 'title' => 'My Post Feed', 'link' => $this->createUrl(''), 'charset' => 'UTF-8', 'entries' => $entries, ), 'rss'); $feed->send(); } 到此,feed就完成了,我们通过下面的URL访问:http://www.example.com/feed.xml
    我们可以在页面的head部分使用下列代码:
    Yii::app()->clientScript->registerLinkTag( 'alternate', 'application/rss+xml', $this->createUrl('site/feed')); 我们也可以使用CHtml:linkTag()直接插入链接标签在当前页面上。这两个方法的区别在于前者的代码可以写在任何地方,而后者只能出现在视图(或layout)的head部分。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表