当下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 = “http://www.hbgrs.org/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文件相关推荐

  1. 【csv文件转xml文件】Excel表格数据快速批量生成xml格式文件

    使用背景: 使用场景举例:数据集标签处理 有时候我们需要将固定格式的Excel表格文件(csv文件)转换为xml文件使用,例如我们在目标检测实验当中我们需要制作数据集Pascal VOC格式的标签文件 ...

  2. php生成gif动态图片_动态生成gif格式的图像要注意?

    动态生成gif格式的图像要注意? 更新时间:2006年10月09日 00:00:00   作者: 如果你用 int imagecreatefromgif(string filename); 来取出一张 ...

  3. python解析log文件_python解析基于xml格式的日志文件

    大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本. 首先,同样的先看看日志是个啥样. 都是xml格式的,是不是看着就头晕了??没事,我 ...

  4. Java生成真正格式的Excel文件

    一般情况下如果想完全通过自己手工组装的方式去生成一个Excel文件,可以先在pom.xml文件中引入下述依赖: <dependency><groupId>com.github. ...

  5. python使用fpdf生成发票格式的pdf文件包含:文字、图片logo、表格、条形码等;

    python使用fpdf生成发票格式的pdf文件包含:文字.图片logo.表格.条形码等: pip install fpdf #python使用fpdf生成发票格式的pdf文件包含:文字.图片logo ...

  6. java根据pdf模板生成指定格式的pdf文件

    java根据pdf模板生成指定格式的pdf文件 一.工具准备 事先得准备好Adobe Acrobat DC,这是一款专门编辑pdf的工具,小编已经给大家准备好了. 链接:https://pan.bai ...

  7. python 读取excel格式xml,读取xml格式的xls文件、解析其中数据

    1.python 读取excel格式xml,解析其中数据 当excel文件的格式是xml的时候,window系统是可以正常打开的,但是使用pandas直接读取则会报错,原因就是现在已经是xml文件了, ...

  8. pdmreader支持读取xml格式的pdm文件,无法读取二进制格式的pdm文件。

    您的Pdm数据字典文件可能不被PDMReader读取,可能是因为pdm文件版本的问题.但 您可以通过PowerDesigner12(下载PowerDesigner12)进行转换 后进行读取. 您要做的 ...

  9. PDMReader软件,打开.pdm文件,提示要将这个pdm文件重新保存为xml格式的pdm文件,但是保存的明明就是xml格式的pdm文件,但还是不行,为什么?

    PDMReader软件,打开.pdm文件,提示要将这个pdm文件重新保存为xml格式的pdm文件,但是保存的明明就是xml格式的pdm文件,但还是不行,为什么? pdmReader的版本和powerd ...

最新文章

  1. Linux内核学习总结
  2. 17岁「天才少女」被8所世界名校录取,最终选择MIT计算机系,还说学成后肯定回国...
  3. gin redis 链接不上_内存优化,Redis是如何实现的!
  4. LeetCode7.整数反转 JavaScript
  5. boost::rotate相关的测试程序
  6. java 注入 循环_spring依赖注入——循环依赖
  7. 丘成桐:用10年时间培养一批本土一流基础科学人才
  8. linux tomcal 看日志,cal命令 – 显示日历
  9. NS3 MyApp Class Reference
  10. org manual翻译--3.6 Org-Plot
  11. Perl面向对象编程
  12. Mac效率工具:Mosaic 1.3.3
  13. List、Set、Map比较
  14. Python面向对象成员修饰符
  15. mapxtreme相关
  16. Sql Server 还原数据库并重命名
  17. vscode免密登录需要更改authorized_keys的权限
  18. 协调世界时--UTC
  19. 【图像识别与处理】构建用于垃圾分类的图像分类器
  20. [2019牛客多校训练第3场]Median

热门文章

  1. 计算机网络(二十四)UDP及TCP首部的格式
  2. 黑客盗走银行3亿比索|Rowhammer变体出现|DHS发布网络安全战略
  3. 数据结构学习笔记——线性表逻辑结构和顺序存储结构
  4. qt串口阻塞_Qt串口操作
  5. iview table表格单元格的动态合并
  6. NXP i.MX 8M Mini 核心板规格参数,四核ARM Cortex-A53 + ARM Cortex-M4
  7. 使用ARM-LPC3131上的nandflash实现U盘模式心得(一)
  8. 爬虫其实很简单!——网络爬虫快速实现(一)
  9. 解决qt.qpa.plugin: Could not load the Qt platform plugin “xcb“ in ““ even though it was found.
  10. 132计算机毕业设计