首页 > PHP资讯 > PHP培训技术 > Yii框架整合Zend库函数生成WebFeed

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

PHP培训技术

上供大家下载)。确保文件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部分。

PHP培训技术

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持31不支持0