本文实例讲述了php制作基于xml的RSS订阅源功能。分享给大家供大家参考,具体如下:
首先制作一个 RSS 模板,模板的文件名是 feed.xml,代码如下:
1
2
|
<? xml version = "1.0" encoding = "utf-8" ?>
< rss version = "2.0" xmlns:wfw = "http://wellformedweb.org/CommentAPI/" ></ rss >
|
再就是用php文件从数据库读取数据并生成 RSS 文件,这里用一个数组模拟从数据库读取的数据:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
<?php
class Rss{
protected $dom = null;
protected $temp = './feed.xml' ;
protected $rss = null;
protected $title = '' ;
protected $desc = '' ;
protected $link = '' ;
public function __construct(){
$this ->title = '物理学' ;
$this ->desc = '现代物理学' ;
$this ->link = 'http://mysql/rss.php' ;
$this ->dom = new DOMDocument( '1.0' , 'utf-8' );
$this ->dom->load( $this ->temp);
$this ->rss = $this ->dom->getElementsByTagName( 'rss' )->item(0);
}
public function feed( $arr ){
$this ->createChannel();
$channel = $this ->dom->getElementsByTagName( 'channel' )->item(0);
foreach ( $arr as $v ){
$channel ->appendChild( $this ->createItem( $v ));
}
header( 'content-type:text/xml' );
echo $this ->dom->savexml();
}
protected function createChannel(){
$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 );
}
protected function createItem( $arr ){
$item = $this ->dom->createElement( 'item' );
foreach ( $arr as $k => $v ){
$item ->appendChild( $this ->createEle( $k , $v ));
}
return $item ;
}
protected function createEle( $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 = new Rss;
$rss ->feed( $arr );
?>
|
最后在火狐下效果:
希望本文所述对大家PHP程序设计有所帮助。