一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

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

时间:2017-03-23 编辑:简简单单 来源:一聚教程网

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

 代码如下 复制代码

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

 代码如下 复制代码

classRss{

  protected$dom= null;

  protected$temp='./feed.xml';

  protected$rss= null;

  protected$title='';

  protected$desc='';

  protected$link='';

  publicfunction__construct(){

    $this->title ='物理学';

    $this->desc ='现代物理学';

    $this->link ='http://mysql/rss.php';

    $this->dom =newDOMDocument('1.0','utf-8');

    $this->dom->load($this->temp);

    $this->rss =$this->dom->getElementsByTagName('rss')->item(0);

  }

  publicfunctionfeed($arr){

    $this->createChannel();

    $channel=$this->dom->getElementsByTagName('channel')->item(0);

    foreach($arras$v){

      $channel->appendChild($this->createItem($v));

    }

    header('content-type:text/xml');

    echo$this->dom->savexml();

  }

  protectedfunctioncreateChannel(){

    $channel=$this->dom->createElement('channel');

    $channel->appendChild($this->createEle('title',$this->title));

    $channel->appendChild($this->createEle('link',$this->link));

    $channel->appendChild($this->createEle('description',$this->desc));

    $this->rss->appendChild($channel);

  }

  protectedfunctioncreateItem($arr){

    $item=$this->dom->createElement('item');

    foreach($arras$k=>$v){

      $item->appendChild($this->createEle($k,$v));

    }

    return$item;

  }

  protectedfunctioncreateEle($name,$value){

    $e=$this->dom->createElement($name);

    $t=$this->dom->createTextNode($value);

    $e->appendChild($t);

    return$e;

  }

}

$arr=array(

  array(

    'title'=>'牛顿力学',

    'link'=>'1',

    'description'=>'牛顿力学'

  ),

  array(

    'title'=>'相对论',

    'link'=>'1',

    'description'=>'爱因斯坦的相对论'

  )

);

$rss=newRss;

$rss->feed($arr);

?>

最后在火狐下效果:

热门栏目