热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

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部分。


推荐阅读
  • 本文探讨了如何在JavaScript中调用PHP函数及实现两者之间的有效交互,包括通过AJAX请求、动态生成JavaScript代码等方法。 ... [详细]
  • 软件项目管理实践——Jenkins持续集成与Maven、GitHub的应用
    本文详细介绍了如何利用Jenkins实现持续集成,以及Maven和GitHub在项目开发中的具体应用。包括环境搭建、工具安装、项目创建及代码管理等关键步骤。 ... [详细]
  • 解决fetch上传图片至微信公众号H5页面的问题
    在近期的一个项目需求中,需要在微信公众号内嵌入H5页面,并实现用户通过该页面上传图片的功能,包括拍摄新照片或从已有相册中选择。前端开发中采用了fetch API进行接口调用,但遇到了上传图片时数据无法正确传递的问题。 ... [详细]
  • KKCMS代码审计初探
    本文主要介绍了KKCMS的安装过程及其基本功能,重点分析了该系统中存在的验证码重用、SQL注入及XSS等安全问题。适合初学者作为入门指南。 ... [详细]
  • 本文详细记录了《PHP与MySQL Web开发》第一章的学习心得,特别关注了PHP的基本构成元素、标记风格、编程注意事项及表单处理技巧等内容。 ... [详细]
  • 使用Inno Setup将EXE与JRE封装为Windows安装程序
    本文详细介绍了如何利用Inno Setup工具将EXE文件及Java运行环境(JRE)整合为适用于Windows操作系统的安装程序。我们将提供必要的软件下载链接,并逐步指导您完成整个打包过程。 ... [详细]
  • CSGO
    CSGOTimeLimit:40002000MS(JavaOthers)MemoryLimit:524288524288K(JavaOthers)ProblemDescriptio ... [详细]
  • 本文介绍了如何通过自定义View中的declare-styleable属性创建枚举类型,并在代码中访问这些枚举值的方法。 ... [详细]
  • 本文详细介绍了在PHP中如何创建新文件以及如何使自定义函数在整个项目中全局可用的方法,包括最新的实践技巧。 ... [详细]
  • 解决Android开发中的TextView难题
    探讨了在Android开发过程中遇到的关于TextView组件的常见问题,特别是如何实现多行文字的跑马灯效果,并提供了初步的解决方案和参考资料。 ... [详细]
  • Only2 Labs 是一家专注于视觉设计的工作室,如果您对当前的设计感到不满,或者急需寻找一个可靠的设计合作伙伴,甚至是您的团队项目需要专业指导,Only2 Labs 都将竭诚为您提供帮助。 ... [详细]
  • 解决phpMyAdmin运行错误:mysqli_init(): 属性访问尚未允许
    本文探讨了在使用phpMyAdmin过程中遇到的mysqli_init()函数错误,并提供了有效的解决方案。 ... [详细]
  • 本文探讨了Windows Presentation Foundation (WPF)如何通过扩展Microsoft Build Engine (MSBuild)来增强其构建能力,特别是在处理WPF特有的任务时。 ... [详细]
  • 本文探讨了在执行SQL查询时遇到的因字符集不同而导致查询结果差异的问题,特别是涉及中文字符时。文章分析了在不同字符集设置下,SQL查询结果的变化,并提供了详细的解决方案。 ... [详细]
  • 特斯拉超级散户:坐拥631万股价值逾70亿美元
    特斯拉股价上周五收盘上涨3.43%,达到1114美元,这意味着KoGuan能够以当前价格的一半购入特斯拉股票。据透露,KoGuan持有的特斯拉股份市值已超过70亿美元。KoGuan表示,投资成功的关键在于对特斯拉CEO埃隆·马斯克的信任。 ... [详细]
author-avatar
XXHYM123_702
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有