当前位置:首页 > PHP教程 > php应用 > 列表

php制作基于xml的RSS订阅源功能示例

发布:smiling 来源: PHP粉丝网  添加日期:2018-07-31 12:54:49 浏览: 评论:0 

首先制作一个 RSS 模板,模板的文件名是 feed.xml,代码如下:

  1. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  2. <rssversionrssversion="2.0"xmlns:wfw="http://wellformedweb.org/CommentAPI/"></rss> 

再就是用php文件从数据库读取数据并生成 RSS 文件,这里用一个数组模拟从数据库读取的数据:

  1. <?php 
  2. classRss{ 
  3.   protected$dom= null; 
  4.   protected$temp='./feed.xml'
  5.   protected$rss= null; 
  6.   protected$title=''
  7.   protected$desc=''
  8.   protected$link=''
  9.   publicfunction__construct(){ 
  10.     $this->title ='物理学'
  11.     $this->desc ='现代物理学'
  12.     $this->link ='http://mysql/rss.php'
  13.     $this->dom =newDOMDocument('1.0','utf-8'); 
  14.     $this->dom->load($this->temp); 
  15.     $this->rss =$this->dom->getElementsByTagName('rss')->item(0); 
  16.   } 
  17.   publicfunctionfeed($arr){ 
  18.     $this->createChannel(); 
  19.     $channel=$this->dom->getElementsByTagName('channel')->item(0); 
  20.     foreach($arras$v){ 
  21.       $channel->appendChild($this->createItem($v)); 
  22.     } 
  23.     header('content-type:text/xml'); 
  24.     echo$this->dom->savexml(); 
  25.   } 
  26.   protectedfunctioncreateChannel(){ 
  27.     $channel=$this->dom->createElement('channel'); 
  28.     $channel->appendChild($this->createEle('title',$this->title)); 
  29.     $channel->appendChild($this->createEle('link',$this->link)); 
  30.     $channel->appendChild($this->createEle('description',$this->desc)); 
  31.     $this->rss->appendChild($channel); 
  32.   } 
  33.   protectedfunctioncreateItem($arr){ 
  34.     $item=$this->dom->createElement('item'); 
  35.     foreach($arras$k=>$v){ 
  36.       $item->appendChild($this->createEle($k,$v)); 
  37.     } 
  38.     return$item
  39.   } 
  40.   protectedfunctioncreateEle($name,$value){ 
  41.     $e=$this->dom->createElement($name); 
  42.     $t=$this->dom->createTextNode($value); 
  43.     $e->appendChild($t); 
  44.     return$e
  45.   } 
  46. $arr=array
  47.   array
  48.     'title'=>'牛顿力学'
  49.     'link'=>'1'
  50.     'description'=>'牛顿力学' 
  51.   ), 
  52.   array
  53.     'title'=>'相对论'
  54.     'link'=>'1'
  55.     'description'=>'爱因斯坦的相对论' 
  56.   ) 
  57. ); 
  58. $rss=newRss; 
  59. $rss->feed($arr); 
  60. ?> 

Tags: 示例 功能

分享到: