失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php 新浪财经rss php动态生成xml格式的rss文件

php 新浪财经rss php动态生成xml格式的rss文件

时间:2019-12-02 09:45:40

相关推荐

php 新浪财经rss php动态生成xml格式的rss文件

当下RSS比较流行,RSS是用XML来书写的,于是想给自己的网站也写一个XML文件。可是每增加一条内容都手动写进XML文件,显然太麻烦,于是就想怎么用PHP文件实现自动生成。

RSS文件格式一般是这样的:

?> #开始标签部分,即后边说到的 temp1.xml;

网页标题

http://www.***.com

有关描述

#主体部分,后边说到的temp2.xml;

{title}

{link}

{maintext}

#关闭标签部分,后边说到的temp3.xml;

我们给以上这段代码起个名字叫temp.xml,PHP生成静态页面的原理是:PHP读取temp.xml模板文件,解析处理后将得出的“结果”再填充回模板(如果想生成HTML静态页面,

echo “结果“就可以了),然后用 fopen( ) 函数建立一个新文件rss.xml,用 fwrite( )

将“结果”写进新文件。

我们还看上边的temp.xml模板文件,在标签内的项应该有很多,在php程序里这部分我们要写一个循环,你的网站或博客每增加一篇文章就要向rss.xml追加一个项。所以我们需要把temp.xml文件开始、主体、结束三个部分分为三个文件temp1.xml、temp2.xml、temp3.xml在PHP程序里分别加载,否则,每次循环,fwrite()都会将开始标签和结束部分标签也向

rss.xml写一次。而这两部分标签在rss.xml文件里只能出现一次,否则rss.xml文件在浏览器里不能正常执行。下边来看php程序代码test.php:

$fp = fopen (”temp1.xml”,”r”);

$content = fread ($fp,filesize (”temp1.xml”)); #读入打开文件的内容;

$filename = “test/rss.xml”;

#拟将rss.xml文件最后生成在test目录下,test目录要具有写权限;

$handle = fopen ($filename,”w”); #fopen,即打开文件,若文件不存在,则自动创建;

if (!is_writable ($filename)){die

(”文件:”.$filename.”不可写,请检查其属性后重试!”);}

if (!fwrite ($handle,$content)){die (”生成文件”.$filename.”失败!”);}

$i=0;

$link= mysql_connect(”localhost”,”username”,”passwd”);

$result= mysql_db_query(”database”,”select * from table order by id

desc”);

$k = mysql_num_rows($result);

while( $i

{

$result= mysql_db_query(”gfs”,”select * from news order by id desc

limit $i,1″);

$a = mysql_fetch_array($result);

$b=$a[’id’];

$i++;

$title = $a[’title’];

$link = “/news.php?target=’$b’”;

$maintext=$a[’content’];

$fp = fopen (”temp2.xml”,”r”);

$content = fread ($fp,filesize (”temp2.xml”));

$content = str_replace (”{title}”,$title,$content);

#替换模板变量中的数据;

$content = str_replace (”{link}”,$link,$content);

$content = str_replace (”{maintext}”,$maintext,$content);

$filename = “test/rss.xml”;

$handle = fopen ($filename,”a”); #注意这里是a,不是w,因为要追加不是覆盖数据。

if (!is_writable ($filename)){die

(”文件:”.$filename.”不可写,请检查其属性后重试!”);}

if (!fwrite ($handle,$content)){die

(”生成文件”.$filename.”失败!”);}

}

$fp = fopen (”temp3.xml”,”r”);

$content = fread ($fp,filesize (”temp3.xml”));

$filename = “test/rss.xml”;

$handle = fopen ($filename,”a”);

if (!is_writable ($filename)){die

(”文件:”.$filename.”不可写,请检查其属性后重试!”);}

if (!fwrite ($handle,$content)){die

(”生成文件”.$filename.”失败!”);}

fclose ($handle);

die (”成功!”);

?>

如果觉得《php 新浪财经rss php动态生成xml格式的rss文件》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。