Laoli Toolbox v1.1.0

60 款纯本地工具,数据不出服务器

文本处理 · 编码转换 · 格式化 · 密码哈希 · 单位换算 · 开发者工具

六大分类各十款,算法全部在服务器本机跑完,不请求任何第三方接口。自带积分体系与会员折扣、三套可切换模板和完整后台,无框架、无 Composer、无构建步骤。

60本地工具
6工具分类
3可切换模板
9后台模块
核心能力60 款工具积分会员模板后台技术规格安装答疑

FEATURES

程序本体就带的东西

不做「插件市场」那种花活,功能都写在源码里,读完一遍就知道边界在哪。

件

工具即文件

每个工具是 app/tools/{分类}/{slug}.php 里返回的一份数组定义,丢进去就出现在前台。不用建表、不用装扩展、不用后台注册;表单字段与算法以磁盘文件为准,后台只覆盖名称、说明、积分、排序、开关。

分

积分 + 会员双体系

每个工具单独定价,0 即免费;会员按身份打折,解锁一次永久可用。月会员三分之一、年会员一半、永久会员免费,价格向上取整绝不出现小数积分,加减分全部留流水与余额快照。

皮

一套函数,三套皮肤

前台所有模板共用同一套渲染函数与同一份基础样式,模板只负责「长什么样」。新模板通常只需要一个 layout.php + 一份 CSS,片段缺失自动回落 default 模板,后台模板中心一键全站切换。

心

前端用户中心

注册登录、每日签到、积分明细、会员中心、解锁记录、收藏、评论与积分榜,全部由模板渲染。图形验证码缺 GD 时自动退回 SVG,连签满 7 天额外奖励,评论可先审后发、通过才发积分。

台

独立后台

/admin 进入,独立会话键与前台互不影响,六个分类九个子模块:工具、分类、用户、评论、模板、设置、统计、日志。写操作强制 CSRF,统一留操作日志,访问统计按天记录 PV / UV / 执行次数。

净

根目录干净

根目录只有一个 index.php 入口加三个目录,伪静态规则随包给出。app/、storage/ 屏蔽直访,SQL 全走预处理参数绑定,输出统一转义,静态资源路径锁死在 assets 目录内。

TOOLS

六个分类,每类十款

全部自己实现,逻辑短平快,输入不发给任何第三方。以下名称与后台「工具管理」里看到的一致。

文本处理text / 10 · 字数统计、去重排序、大小写与全半角转换等日常文本整理
字数统计器文本去重排序英文大小写转换全角半角转换行号与序号批量查找替换文本分列与提取文本差异对比空白与特殊字符清理文字与行反转
编码转换encode / 10 · Base64、URL、HTML 实体、Unicode、进制与字符集互转
Base64 编码解码Base32 编码解码十六进制与 Base58URL 编码解码HTML 实体编解码Unicode 转义转换二进制八进制互转进制计算器摩尔斯电码UTF-8 与 GBK 转换
格式化format / 10 · JSON、XML、SQL、Markdown 美化与时间戳、颜色、金额处理
JSON 格式化XML 格式化SQL 格式化CSV 转换YAML 与 JSON 互转Markdown 预览时间戳转换颜色转换数字格式化Crontab 解析
密码哈希hash / 10 · 摘要计算、HMAC 签名、加解密、强密码生成与强度检测
哈希计算器校验值计算HMAC 签名AES 加解密RSA 密钥对生成密码哈希与校验crypt() 兼容演示强密码生成器密码强度检测哈希反查
单位换算convert / 10 · 长度重量、面积体积、温度速度、容量时间与贷款利息
长度与重量换算面积与体积换算速度与温度换算存储容量换算时间日期计算通用单位换算数学表达式计算健康与身材指标贷款与复利计算货币单位换算
开发者工具dev / 10 · UUID、随机串、正则测试、JWT 解析、UA 与状态码速查
UUID 生成器随机字符串与随机数JWT 解析JSON Path 查询正则测试器User-Agent 解析HTTP 状态码速查robots.txt 与 .htaccess 生成器Meta 标签生成器假文生成器
加自己的工具:往对应分类目录放一个文件即可,分类页、搜索、后台、积分定价会自动出现它。

ECONOMY

积分怎么花,会员怎么省

工具在后台各自定价,会员身份决定折扣系数,实付积分按 ceil(原价 × 系数) 向上取整,同一工具对同一用户只扣一次。

普

普通用户 · 1.0 原价

7 分的工具就扣 7 分,解锁后永久可用。

月

月会员 · 30 天 1/3

7 分变 3 分,默认 300 积分开通。

年

年会员 · 365 天 0.5 半价

7 分变 4 分,默认 1000 积分开通。最划算

永

永久会员 · 0 全免费

所有付费工具不再扣分,默认 3000 积分开通。

折扣实付对照

工具原价普通月会员年会员永久
0 分(免费)0000
7 分7340
30 分3010150
99 分9933500
会员到期不影响已经解锁的工具,只影响之后新工具的折扣。

积分从哪来(后台可改)

设置键默认说明
points_register100注册赠送
points_sign5每日签到
points_sign_bonus10连续签到满 7 天额外奖励
points_comment2评论审核通过后奖励
不会扣成负数:扣分走 UPDATE ... WHERE points >= ? 再写流水,不会出现负余额,也不会出现并发超扣。

THEMES

三套自带模板,改一套很容易

三套模板共用同一套渲染函数与同一份基础 CSS,差别只在变量覆盖与签名样式。dark 只有一个 layout.php,light 只多一个页头片段,其余片段自动复用 default。

经典蓝default
经典蓝默认模板。深蓝页头与卡片阴影,信息密度高,适合工具站主力皮肤。
app/themes/default/在线下载
夜间墨dark
夜间墨深色模板。三级深色分层与提亮主色,夜间长时间使用不刺眼。
app/themes/dark/在线下载
极简素light
极简素白底细线模板。衬线正文、去阴影、单处强调色,适合内容型站点嵌入。
app/themes/light/在线下载
新建一套模板
app/themes/mine/
├─ layout.php          # 唯一必需文件:页面外壳
├─ theme.json          # 名称、作者、版本、介绍、色块
└─ partial/header.php  # 可选,只覆盖想改的片段
assets/mine/css/style.css   # 覆盖 :root 变量 + 自己的签名样式
放进目录 → 后台「模板中心」自动扫描出卡片 → 点「设为默认」全站生效。访客也能用 /theme/{key} 自己试用,只影响当前会话。三套自带模板的 key 分别是 tp-classic(经典蓝,16 个页面片段都在这套里)、tp-plain(极简素,顶部改成横向分类条)、tp-night(夜间墨,深色底高对比)。
文档与模板包都在官网:这套模板开发文档已经并进官网,看 工具箱开发文档;模板不想要的可以在后台删掉,随时在 模板商店 重新下载装回去。

ADMIN

后台九个模块

管理员是用户表里 role = 1 的账号,后台会话与前台登录互不影响,有效期 6 小时滑动续期。

模块地址能做什么
概览/admin用户、工具、评论、今日访问等关键数字与待办
工具管理/admin/tools按分类 / 收费状态 / 关键词筛选,改名称、说明、所需积分、排序、上下架
分类管理/admin/categories改分类名称、描述、排序与开关
用户管理/admin/users查用户、加扣积分、封禁、设会员类型与到期时间
评论管理/admin/comments审核通过 / 驳回 / 删除,通过时按规则发放积分
模板中心/admin/themes列出模板与配色预览,一键切换全站模板,可改模板介绍
站点设置/admin/settings站点信息、公告、页脚、ICP、积分规则、会员价、评论策略、首页数量
访问统计/admin/stats按天 PV / UV / 执行次数柱状图与工具排行
操作日志/admin/logs后台写操作留痕,可清空

SPEC

技术规格

面向还活着的老环境:不用 PHP 8 语法,不用 MySQL 5.7 之后才有的特性。

项目要求 / 说明
PHP7.4+(不使用 match、箭头空合并等 8.0 语法)
数据库MySQL 5.6+ / utf8mb4 / InnoDB,兼容 MariaDB
必需扩展pdo、pdo_mysql、mbstring、json
可选扩展gd(图形验证码,缺则退 SVG)、openssl(AES / RSA 工具)
表前缀默认 laoli_,安装向导可改,换前缀不动代码
依赖无框架、无 Composer、无模板引擎、无构建步骤
路由单入口 index.php + PATH_INFO
数据表10 张

十张表各自管什么

核心配置与用户
  • laoli_setting站点设置、积分规则、会员价,以及工具与分类的覆盖 JSON
  • laoli_user用户、密码哈希、积分、会员类型与到期、角色与状态
积分钱账
  • laoli_point_log积分流水,含当时余额快照
  • laoli_unlock用户已解锁的付费工具
互动用户行为
  • laoli_favorite收藏
  • laoli_history工具使用记录
  • laoli_comment工具评论与审核状态
  • laoli_comment_like评论点赞
运维统计与审计
  • laoli_visit按天 + IP 的 PV / UV / 执行次数
  • laoli_admin_log后台操作日志
备份只要导出这十张表,工具定义和模板都在文件系统里。

INSTALL

装起来就四步

没有命令行初始化,没有额外服务,上传即装。

  1. 1

    上传源码

    整个目录放到站点根目录或子目录,保证 app/、app/data/、storage/ 可写。

  2. 2

    访问首页进安装向导

    只要 app/config.php 不存在,任何地址都会进向导,页面先做 PHP 版本、必需扩展与写权限预检。

  3. 3

    填库名、前缀、管理员

    库不存在会自动创建;表前缀默认 laoli_;向导生成配置与 install.lock,导入十张表并建管理员(默认永久会员)。

  4. 4

    配伪静态

    根目录刻意不放 .htaccess / nginx.htaccess / web.config,README.md 第 4 节里 Apache / Nginx / IIS / 宝塔各有一段可以整块复制的原文,照抄即可。

Apache · README 第 4 节原文(自己新建 .htaccess)
Options -Indexes
AcceptPathInfo On
DirectoryIndex index.php index.html

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(app|storage)(/|$) - [F,L]
    RewriteRule \.(sql|log|lock|bak|ini|conf|zip|tar|gz|tgz|7z|rar)$ - [F,L]
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    # PATH_INFO 模式:/t/base64 交给 index.php 解析
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule mod_headers.c>
    Header set X-Content-Type-Options "nosniff"
</IfModule>
Nginx · 宝塔两步(漏第二步内页会 404)
# 第一步 · 面板「伪静态」框(server 层级)
location ~ ^/(app|storage)/ {
    return 404;
}
if ($uri ~* \.(sql|log|lock|bak|ini|conf|zip|tar|gz)$) {
    return 403;
}
if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php$1 last;
}

# 第二步 · 把 PHP 段换成带 PATH_INFO 的版本
# 宝塔默认只有 location ~ \.php$,/t/base64 这类地址取不到 PATH_INFO
location ~ [^/]\.php(/|$) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    set $path_info $fastcgi_path_info;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_pass unix:/run/php/php74-fpm.sock;
}
改完 Nginx 要 reload:nginx -t 校验后 nginx -s reload 生效;nginx -s reopen 只是重开日志,配置不会换。规则漏配也不会被执行:app/bootstrap.php 有入口守卫,不经根目录 index.php 访问 app/ 一律 403。
本地跑起来看看:php -S 127.0.0.1:8080 app/router.php,浏览器打开就是安装向导(router.php 模拟线上规则;不带 router 直接指 index.php 是不行的,内置服务器不会把路径交给它)。装好之后在后台「商店与更新」里填官网的 /shouquan 地址,就能在线拉更新包与模板。

FAQ

几个常被问到的

用户的输入会不会被传到第三方?
不会。60 款工具的算法都在 app/tools/ 下的文件里本地实现,没有任何工具发起外部 HTTP 请求;哈希、加解密用 PHP 自带的 hash / openssl 函数。
解锁为什么只扣一次?
每次解锁在 laoli_unlock 表落一条用户与工具的记录,付费墙在工具执行层统一判断,已解锁的直接放行。会员过期只影响之后新工具的折扣,不影响已解锁的工具。
能不能改工具定价或者关掉某个工具?
后台「工具管理」里改所需积分、下架、改名称与说明都可以,排序也能调。这些覆盖以 JSON 存在设置表,不动磁盘上的工具文件;想要真正的默认值改动,直接改工具文件里的 cost。
三套模板之外再加模板要动源码吗?
不用。新建 app/themes/{目录名}/layout.php 与 theme.json,再放一份 assets/{目录名}/css/style.css,模板中心扫描目录时会自动出现这张卡片。
评论一定要人工审吗?
后台设置里「先审后发」可以关。另外还有敏感词、单条长度、发帖间隔三项限制;关闭审核后新评论直接公开并按规则发积分。
后台能不能被前台用户进?
后台只认 role = 1 的账号,用的是独立会话键,与前台登录状态互不通用;所有写操作统一校验 CSRF,未登录的 POST 直接返回 401。
MySQL 5.6 能用吗?
表结构就是按 5.6 写的:不用 DEFAULT (expr)、不用 5.7 的 JSON 函数与窗口函数,时间全部存 INT 时间戳,字符集 utf8mb4。

把这套程序放到你自己的域名下

单入口、无依赖、注释干净,改起来不用猜。遇到问题或者想要更多工具,直接联系老李。