首页 原创素材 正文

PHP源码 | 五个文件(压缩包仅14kb)的RSS订阅展示

这一期依旧是一篇源码分享文章,代码由Deepseek来写。我发布出来的都是自用项目,都是根据自己喜好来做的,没有考虑过做成产品面向其他人。如果有人愿意用的话都可以自己随意改。之后我还会多更新一些自己策划的项目。


介绍

首先讲为什么要做这个东西呢?我用过一段时间的FreshRSS,别的一些叫不出名字的程序、插件也用过,体验都没达到我的预期(甚至很难用)。
我想要一款真正干净、不容易出错、按时间排序的RSS订阅器。而且还要操作简单,不需要后台。所以我就让大肥鱼给我写了一个。风格依旧是我喜欢的千禧年Y2K。
看效果可以在我自己的订阅站看(https://rss.050601.xyz/ )。有两篇一模一样的文章是因为内容在两个博客都更新,不是bug。
文章后面都是说明文档了,也是大肥鱼自己写的,内容不长。

下载地址

因为压缩包很小(仅14kb)所以我直接放在这个博客的目录下了,不用再担心Kodbox失效什么的,欢迎下载使用!https://1103.wang/phptinyrss
截图


Tiny RSS 文档说明

一个极简的 PHP RSS 阅读器。没有账号、没有后台、没有算法,只有订阅和文章。

特性

  • 订阅源写在一个 feeds.json 里,改完点刷新即可
  • 所有源的文章按发布时间倒序混排,新加的源自动穿插
  • 顶部可按源筛选,底部按 20 条一页分页
  • 打开页面读缓存,超过 6 小时自动重抓;也可以手动点刷新
  • 某源抓取失败会顶部提示,点开看原因
  • 浅色 / 深色模式,自动跟随系统,可手动切换
  • 桌面 / 平板 / 手机响应式

文件结构

tiny-rss-php/
├─ feeds.json 订阅源列表
├─ lib.php 抓取、解析、缓存、分页
├─ api.php 前端数据接口
├─ index.php 首页
├─ 404.php 404 页
└─ cache/ 缓存目录(自动创建,需可写)

环境要求

  • PHP 7.4+
  • 扩展:curl、dom、libxml、json、mbstring

快速开始

本地运行

cd tiny-rss-php
php -S localhost:3000

打开 http://localhost:3000 ,首次访问会触发一次抓取。

Nginx 配置

把目录放到站点根目录,在 server { } 里加:

location = /feeds.json { deny all; }
location ^~ /cache/    { deny all; }
location = /lib.php    { deny all; }

error_page 404 /404.php;

确保 cache/ 目录对 PHP 运行用户可写:

mkdir -p cache
chown -R www-data:www-data cache
chmod 775 cache

Apache 配置

在项目根目录建 .htaccess,内容如下:

<FilesMatch "^(feeds\.json|lib\.php)$">
  Require all denied
</FilesMatch>
RedirectMatch 403 ^/cache/.*$

ErrorDocument 404 /404.php

cache/ 目录同样要可写。

配置订阅源

编辑 feeds.json,数组里每个元素一个源,字符串或对象都行:

[
  "https://www.ruanyifeng.com/blog/atom.xml",
  "https://sspai.com/feed",
  { "url": "https://hnrss.org/frontpage" }
]

改完回页面点「刷新」。

可调参数

都在 lib.php 顶部:

常量 默认 说明
CACHE_TTL 6 * 3600 缓存有效期(秒),超时自动重抓
MAX_ITEMS_PER_FEED 50 每个源最多保留条数
PER_PAGE 20 每页文章数
SUMMARY_LEN 120 摘要截取字数
FETCH_TIMEOUT 15 单源抓取超时(秒)

常见问题

文章列表为空?
检查 feeds.json 格式是否正确,点「刷新」看顶部是否有抓取失败提示。

某个源文章比预期少?
可能该源使用了相对链接(如 /post/123),目前只接受 http/https 绝对链接。

想改样式?
index.php 顶部的 style 标签里,主题色都在 :root 和 html[data-theme="dark"] 两个块中。

端口冲突?
php -S localhost:8080 换个端口即可。

许可

自用项目,随意。

文章结束啦,感觉咋样?

好耶(0)

学吧(0)

送颗糖(0)

尴尬(0)

怎会如此(0)

绷不住了(0)
文章目录
    radino
    评论
    更换验证码
    友情链接