如何用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 (44周岁)
程序设计,前端设计。

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

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

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

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