如何用PHP编写RSS

王志勇 发表于 2009年03月25日 10:38

实例:http://www.zj7.com/feed/,实际路径:http://www.zj7.com/feed/index.php。创建一个扩展名为.php的文件,在这个.php文件中,开头写入如下这句,PHP文件格式即可转化为XML格式:

<?header("Content-type: text/xml; charset=utf-8");?>

然后可以参考别人的RSS文件的编写方式,如果已经可以正常运行,后面的文字无需阅读。RSS文件唯一要注意的是<pubDate>标签,对发布时间的格式有严格要求,否则用户第一次订阅您的RSS时,文章无法按发布时间来排列(发布时间的格式仅对用户第一次订阅RSS时有影响,如果格式不正确也不要紧)。

有的网友问,为什么写入这句仍无效?

  1. 因为使用header()函数,需要去掉BOM(Unicode签名),然后将header()语句写在最前,否则PHP程序会报错。去掉BOM的方法请参考我写的这篇http://www.auiou.com/relevant/00000470.jsp。防止header()函数报错的另一种方法,先去掉BOM,然后在文件的最前写入ob_start();这句。
  2. 如果输出的XML编码中,有<?和?>,需要将?号转化为chr(63)的形式,或者使用引号,使有?号的语句在引号中,否则会被认为是PHP程序来运行而报错。例如我的.php的RSS文件中,有这样一句:<?xml version="1.0" encoding="UTF-8"?>,这样会报错。解决的方法是:<<?=chr(63)?>xml version="1.0" encoding="UTF-8"<?=chr(63)?>>,或者这样<?='<?xml version="1.0" encoding="UTF-8"?>'?>,或者<?echo '<?xml version="1.0" encoding="UTF-8"?>'?>。

2条评论:
1   自由勇 2009-04-14 12:37
Trackback来自 《我的PHP最佳编程工具是EmEditor

在PHP程序里,如果网页使用UTF-8格式和语言,BOM(Unicode签名)有一些障碍,所以需要去掉BOM。

2   叶开楗 2021-09-25 14:07
我百度过来的 勇哥!

我想在根目录生成一个feed.xml 。。

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

王志勇:1980-09-26 (41周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2021年06月(9)
2021年05月(17)
2021年04月(25)
2021年03月(6)
2021年02月(17)
2021年01月(30)
2020年12月(19)
2020年11月(18)
2020年10月(15)
2020年09月(14)
2020年08月(14)
2020年07月(14)
2020年06月(16)
2020年05月(13)
2020年04月(18)
2020年03月(14)
2020年02月(15)
2020年01月(16)
2019年12月(11)
2019年11月(26)
2019年10月(25)
2019年09月(30)
2019年08月(10)
2019年07月(29)
2019年06月(30)
2019年05月(26)
2019年04月(30)
2019年03月(30)
2019年02月(30)
2019年01月(30)
2018年12月(30)
2018年11月(30)
2018年10月(30)
2018年09月(17)
2016年-2017年(9)
2014年06月-09月(10)
2013年 +

2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2021 auiou.com All rights reserved.
此Blog程序由王志勇编写