RSS Feed是一种基于XML格式的内容订阅标准,全称为Really Simple Syndication,它的作用是把网站的最新内容按照固定格式整理成数据流,用户通过RSS阅读器订阅后,就能自动接收网站的更新通知,不需要反复打开网站查看新内容。

RSS Feed的核心组成
一个标准的RSS Feed文件主要包含两部分内容,分别是频道信息和具体的条目信息:
- 频道信息:描述整个RSS源的基本属性,包括网站名称、网站链接、频道描述、最后更新时间等。
- 条目信息:对应网站的单篇内容,每一条条目包含内容标题、内容链接、内容摘要、发布时间、作者等信息。
手动创建RSS Feed的步骤
如果你的网站内容更新频率不高,或者想要更灵活地控制RSS内容,可以手动编写XML格式的RSS文件,以下是具体的操作步骤。
1. 确定RSS版本和根标签
目前常用的RSS版本是2.0,根标签为<rss>,需要声明版本属性,内部嵌套<channel>标签作为频道容器。
2. 填写频道基础信息
在<channel>标签内添加网站的基础信息,这些信息会出现在RSS阅读器的频道列表中。
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>我的个人博客</title>
<link>https://ipipp.com/blog</link>
<description>分享技术学习和生活感悟的个人博客</description>
<lastBuildDate>Mon, 20 Nov 2023 10:00:00 GMT</lastBuildDate>
<language>zh-cn</language>
</channel>
</rss>
3. 添加内容条目
在<channel>标签内,每篇内容对应一个<item>标签,每个<item>需要包含至少标题和链接两个必填字段。
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>我的个人博客</title>
<link>https://ipipp.com/blog</link>
<description>分享技术学习和生活感悟的个人博客</description>
<lastBuildDate>Mon, 20 Nov 2023 10:00:00 GMT</lastBuildDate>
<language>zh-cn</language>
<item>
<title>如何搭建个人博客</title>
<link>https://ipipp.com/blog/post/1</link>
<description>本文详细讲解从域名购买到服务器部署的完整个人博客搭建流程</description>
<pubDate>Mon, 20 Nov 2023 09:00:00 GMT</pubDate>
<author>张三</author>
</item>
<item>
<title>Python基础语法入门</title>
<link>https://ipipp.com/blog/post/2</link>
<description>适合零基础学习者的Python语法入门教程,包含变量、循环、函数等核心知识点</description>
<pubDate>Sun, 19 Nov 2023 14:00:00 GMT</pubDate>
<author>张三</author>
</item>
</channel>
</rss>
4. 部署RSS文件
将编写好的XML文件保存为rss.xml,上传到网站的根目录或者固定的子目录下,比如https://ipipp.com/rss.xml,用户就可以通过这个链接订阅你的网站内容了。
使用PHP动态生成RSS Feed
如果网站内容是通过数据库存储的,手动更新RSS文件会非常麻烦,这时候可以用后端语言动态生成RSS内容,以下是PHP的实现示例。
<?php
// 设置响应头为XML格式
header("Content-type: text/xml; charset=utf-8");
// 假设从数据库获取的文章列表,实际使用时替换为你的数据库查询逻辑
$articles = [
[
'title' => '如何搭建个人博客',
'link' => 'https://ipipp.com/blog/post/1',
'description' => '本文详细讲解从域名购买到服务器部署的完整个人博客搭建流程',
'pub_date' => '2023-11-20 09:00:00',
'author' => '张三'
],
[
'title' => 'Python基础语法入门',
'link' => 'https://ipipp.com/blog/post/2',
'description' => '适合零基础学习者的Python语法入门教程,包含变量、循环、函数等核心知识点',
'pub_date' => '2023-11-19 14:00:00',
'author' => '张三'
]
];
// 输出XML声明
echo '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;
echo '<rss version="2.0">' . PHP_EOL;
echo '<channel>' . PHP_EOL;
echo '<title>我的个人博客</title>' . PHP_EOL;
echo '<link>https://ipipp.com/blog</link>' . PHP_EOL;
echo '<description>分享技术学习和生活感悟的个人博客</description>' . PHP_EOL;
echo '<lastBuildDate>' . gmdate('D, d M Y H:i:s GMT') . '</lastBuildDate>' . PHP_EOL;
echo '<language>zh-cn</language>' . PHP_EOL;
// 循环输出文章条目
foreach ($articles as $article) {
echo '<item>' . PHP_EOL;
echo '<title>' . htmlspecialchars($article['title']) . '</title>' . PHP_EOL;
echo '<link>' . htmlspecialchars($article['link']) . '</link>' . PHP_EOL;
echo '<description>' . htmlspecialchars($article['description']) . '</description>' . PHP_EOL;
echo '<pubDate>' . gmdate('D, d M Y H:i:s GMT', strtotime($article['pub_date'])) . '</pubDate>' . PHP_EOL;
echo '<author>' . htmlspecialchars($article['author']) . '</author>' . PHP_EOL;
echo '</item>' . PHP_EOL;
}
echo '</channel>' . PHP_EOL;
echo '</rss>' . PHP_EOL;
?>
创建RSS Feed的注意事项
- XML文件必须严格遵循语法规范,所有标签都要正确闭合,属性值要用双引号包裹,特殊字符比如<、>、&需要进行转义。
- 时间格式要使用RFC 822标准,比如
Mon, 20 Nov 2023 10:00:00 GMT,否则部分RSS阅读器可能无法正确解析。 - 不要在一个RSS文件中放太多条目,一般建议保留最近20到50篇内容即可,避免文件过大影响加载速度。
- 每次网站更新内容后,要及时更新RSS文件的
lastBuildDate字段和对应的条目信息,保证订阅用户能收到最新内容。
验证RSS Feed的有效性
创建完成之后,可以使用在线的RSS验证工具检查你的RSS源是否符合规范,把你的RSS链接输入到验证工具中,如果提示没有错误,就说明你的RSS Feed可以正常使用了。