本文实例讲述了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程序设计有所帮助。