嘿！教你做个“黑幕说悄悄话”的效果有时候吧，总有些话不想让人第一眼就看到，但又想留给好奇宝宝们去发现 比如下面这样：（啊对对对，文章中无端端出现黑色的东西，是个猫？也会摸上去）emmm就像上面一样，鼠标移上去它就现身了！是不是很神奇？咱这就来唠唠怎么搞～1. CSS 部分把下面的代码扔到：后台 → 外观 → 自定义 → 额外CSS 里就行。其他博客系统如果有“附加CSS”功能也一样操作～.heimu, .heimu a, a .heimu, .heimu a.new { background-color: #252525; color: #252525; text-shadow: none; } .heimu:hover, .heimu:active, .heimu:hover .heimu, .heimu:active .heimu { color: white !important; } .heimu:hover a, a:hover .heimu, .heimu:active a, a:active .heimu { color: lightblue !important; } .heimu:hover .new, .heimu .new:hover, .new:hover .heimu, .heimu:active .new, .heimu .new:active, .new:active .heimu { color: #BA0000 !important; } 如果你是其他博客模板，就按人家的方式加～ 要是完全自己撸的网站……那你就放你该放 CSS 的地方呗（md，完全自己设计的网站，不知道什么是CSS放在哪里？我不信）（还有你，连HTML和CSS都不会，你还做什么网站）2. HTML 部分下面轮到 HTML 小零件登场～这是隐藏的文字title：就是你鼠标悬停时蹦出来的小提示“这是隐藏的文字”：换成你自己想说但不想让人一眼看到的大实话（不要告诉我你还是不会）（什么，你问我能不能搞其他颜色，不要黑色？但凡知道CSS是什么东西的人都会改，别告诉我你真的不知道）（你是CSS大佬，要入侵我的网站？？？？来来来来，用你的CSS编写一个软件来入侵我的网站）参考文献（虽然我觉得上面已经够清楚了）： 如何实现黑幕？即鼠标触及之地，原来黑色显示原来文字 - 腾讯云开发者社区快去试试叭！让你的文章也多点神秘小彩蛋～
趣味学习助手，比番茄钟还好用的工具
card-learner一个融合艾宾浩斯遗忘曲线学习法与抽卡玩法的趣味Web应用学习分心怎么办？当然一边分心一边学习，比番茄钟好用的学习工具！? AI 辅助开发本程序在开发过程中使用了 DeepSeek AI 助手进行辅助：? 代码生成⚡ 优化建议? 问题排查?️ 架构设计? 文档编写? 项目简介“趣味学习助手 - 抽卡大乐透” 是一个将学习管理与抽卡游戏相结合的创新性Web应用。用户通过学习积累“通量”货币，然后使用通量进行抽卡，有机会赢取更多通量。应用基于艾宾浩斯遗忘曲线模拟记忆值的变化，让学习过程更加科学有趣，最重要的是，无需数据库（比较没打算是大规模使用）✨ 设计理念游戏化学习：将枯燥的学习过程转化为有趣的游戏体验科学记忆：基于艾宾浩斯遗忘曲线，真实模拟记忆规律风险与回报：抽卡机制带来刺激感，平衡学习与娱乐个性化定制：丰富的参数设置，适应不同学习习惯? 核心功能? 管理员系统本程序内置强大的管理员后台，方便进行全局配置和用户管理：登录方式：访问 /admin.php 进入管理员登录页默认账号：admin默认密码：123admin（首次登录后请及时修改）管理员功能功能模块具体功能? 卡池管理修改五大卡池的消耗通量、奖励范围、中奖概率、颜色标识⚙️ 全局参数调整遗忘速率、学习增益、通量获得/消耗速率等核心参数? 用户管理查看用户列表、重置用户密码、禁用/启用用户账号? 数据统计查看全站抽卡统计、活跃用户、通量总量等数据? 安全设置修改管理员密码、设置登录IP限制（可选）? 记忆管理系统基于艾宾浩斯遗忘曲线公式：记忆值 = 初始值 × (1 - 遗忘速率 × log10(小时数))记忆值：0-100% 的动态数值，随时间自然衰减学习模式：? 单纯学习：每秒增加记忆值（可自定义增益）? 背题模式：每秒增加记忆值 + 获得通量✏️ 刷题助手：随机生成题数，同时增加记忆值和通量休息模式：记忆值按遗忘曲线衰减，消耗通量离线计算：登录时自动计算离线期间的变化? 抽卡大乐透系统五大卡池卡池消耗通量奖励范围中奖概率颜色? 普通卡池101-560%灰色✨ 稀有卡池506-2025%蓝色? 史诗卡池20021-5010%紫色? 传说卡池50051-2004%橙色? 神话卡池1000201-5001%粉色以上参数均可通过管理员后台自定义修改特殊事件✨ 双倍奖励：5%概率获得双倍通量? 超级大奖：1%概率获得10倍通量? 保底机制：最低获得1通量统计功能总抽卡次数总花费通量总获得通量净收益计算抽卡历史记录各卡池抽卡次数? 个人管理面板记忆参数设置遗忘速率：控制记忆衰减速度（默认0.56）刷题记忆增益：每刷一题增加的记忆值（默认0.5%）单纯学习增益：每秒增加的记忆值（默认0.008%/s）背题模式增益：每秒增加的记忆值（默认0.012%/s）通量设置每秒增加通量：背题时通量增长速度（默认0.2/s）每秒消耗通量：休息时通量消耗速度（默认1.0/s）数据管理手动修改学习时长、通量、记忆值清空记忆曲线历史清空抽卡记录重置抽卡统计危险操作永久注销账号（需输入DELETE确认）? 实时监控学习时长：实时计时，显示今日进度通量显示：千进制格式化（k、M、G）记忆值：实时更新，带等级描述记忆曲线图表：可视化最近50次变化抽卡统计：实时更新的抽卡数据? 使用指南新手入门注册账号：点击“注册”标签，填写用户名和密码初始资金：注册赠送100通量了解界面：熟悉四个主要数据卡片尝试抽卡：从普通卡池开始试手气管理员入门登录后台：访问 /admin.php，使用默认账号密码登录修改密码：首次登录后立即修改管理员密码配置参数：根据需求调整卡池和游戏参数管理用户：查看用户列表，处理用户问题进阶玩法高效学习策略开启背题模式：同时获得记忆值和通量使用刷题助手：随机生成题数，获得额外收益平衡学习与休息：避免记忆值过低抽卡策略保守型：专注普通卡池，稳定收益进取型：尝试高级卡池，追求高回报混合型：根据通量余额动态选择参数调优根据个人学习习惯调整：遗忘速率：记忆力好的用户可调低学习增益：学习效率高的用户可调高通量速率：平衡学习和休息节奏⚙️ 技术细节核心算法艾宾浩斯遗忘曲线：根据经过的小时数计算记忆保持率，公式基于对数函数记忆值变化计算：综合考虑遗忘衰减和学习增益，确保记忆值在0-100%范围内离线时间计算：记录最后活动时间，登录时自动计算离线期间的变化数据存储用户列表：加密存储用户账户信息用户数据：每个用户独立文件，JSON格式存储管理员配置：独立配置文件存储全局参数安全防护：文件头部添加防护代码，防止直接访问安全特性密码加密存储输入数据过滤Session会话管理管理员登录验证敏感操作日志记录? 界面展示主要界面登录/注册页：简洁的双标签切换界面主仪表盘：四个实时数据卡片抽卡区：五大卡池展示，带颜色标识学习控制区：模式切换按钮个人管理面板：多标签设置界面管理员后台：独立的参数配置和用户管理界面交互特性实时数据更新抽卡结果弹窗动画进度条动态变化响应式设计，支持移动端? 自定义配置可配置参数卡池参数：卡池名称、消耗通量、奖励范围、中奖概率、颜色特殊事件：双倍奖励概率、超级大奖倍率、保底机制学习参数：遗忘速率、各类学习模式的增益值通量参数：每秒获得/消耗通量管理员参数：后台登录密码、访问权限等默认参数参考遗忘速率：0.56初始通量：100单纯学习增益：0.008%/s背题模式增益：0.012%/s背题通量获得：0.2/s休息通量消耗：1.0/s管理员账号：admin管理员默认密码：123admin? 部署教程环境要求PHP 7.4 或更高版本Web服务器（Apache/Nginx）文件读写权限部署步骤下载源码：从GitHub仓库下载或克隆上传文件：将全部文件上传到网站目录设置权限：确保 data/ 目录有读写权限（777）访问测试：通过浏览器访问网站首页管理员后台：访问 /admin.php 登录管理文件结构card-learner/├── index.php # 主程序文件├── admin.php # 管理员后台├── data/ # 数据目录│ ├── users.php # 用户列表│ ├── config.php # 管理员配置文件│ └── user_data/ # 用户数据文件└── README.md # 说明文档安全建议首次登录管理员后台后立即修改默认密码定期备份 data/ 目录下的所有文件如非必要，不要将管理员账号密码告知他人考虑设置IP访问限制（可选）? 贡献指南欢迎贡献代码、报告问题或提出新想法！Fork 项目创建功能分支提交更改推送到分支开启 Pull Request开发规范遵循编码规范保持代码注释完整确保向后兼容更新相关文档? 更新日志[1.0.0]新增完整的用户注册登录系统基于艾宾浩斯曲线的记忆管理系统五大卡池抽奖系统个人管理面板实时数据同步管理员后台系统卡池参数在线修改用户管理功能?‍? 作者@fghdz? 致谢艾宾浩斯遗忘曲线理论DeepSeek AI 辅助开发 如果这个项目对你有帮助，请给一个⭐️！
Typecho插件故障，导致无法禁用，强制删除网站首页都进不去了？
一次 Typecho 插件故障的完整自救记录：从报错到恢复 ?前言前两天，我的 Typecho 博客突然就挂了?。罪魁祸首是一个叫 WebFirewall 的插件。这玩意儿出问题后，后台那个“禁用”按钮怎么点都没反应，最后整个博客直接摆烂，给我看这个报错：call_user_func_array(): Argument #1 ($callback) must be a valid callback, class "TypechoPlugin\WebFirewall\WebFirewall" not found折腾了好几个小时，总算是把它给收拾服帖了。这篇就把我完整的排查和修复过程记录下来，万一你哪天也遇到这糟心事，希望能帮你省点时间⏰。一、事情是怎么发生的？?整个过程是这样的：我装了个 WebFirewall 插件这货可能跟我博客里别的插件八字不合，或者它自己就有 bug我想去后台把它禁了，结果那个“禁用”按钮就是个摆设，点了一万遍都没反应一刷新页面，好家伙，博客直接给我脸色看，白屏报错，前台后台都进不去了当时的状态就是：✅ 前台：无法访问（卒）✅ 后台：也进不去（双卒）✅ 插件文件：虽然还在，但已经是个废物了✅ 禁用按钮：彻底失灵二、试试“曲线救国注意，请异地导出你的数据库再进行以下操作2.1 上传一个“空壳”插件当你强制删除了WebFirewall，报错不是说找不到 WebFirewall 这个类吗？那我给它一个不就完了！在 /usr/plugins/WebFirewall/ 目录下创建一个 Plugin.php 文件，里面就写这几行：<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; class WebFirewall_Plugin {}上传，刷新网站——报错依然坚挺。这说明问题根子不在文件里，而是在数据库里。三、直捣黄龙，查数据库！?3.1 登录数据库我用的是 1Panel 面板，直接点进 phpMyAdmin 就是干。3.2 找到关键线索表Typecho 的插件信息都藏在 typecho_options 表里，最关键的一行是 name = 'plugins'。点开看 value 字段，好家伙，一串长长的序列化字符串，里面果然有料：...s:10:"WebFirewa";a:1:{s:13:"activated";b:1;s:7:"version";s:5:"1.0.0";}... 看到了吧，数据库里还死死记着这个插件是“已激活”状态呢！3.3 地毯式搜索，不留死角为了清干净，我执行了 SQL 语句，看看还有哪儿藏着它：SELECT * FROM typecho_options WHERE value LIKE '%WebFirewa%';结果发现：plugins 字段里有它panelTable 字段里居然也有它的影子四、终极清理，一招制敌 ?4.1 清空插件列表（最暴力也最有效）直接把 name = 'plugins' 那一行的 value 改成：a:0:{}这串代码的意思就是“没有任何启用的插件”。简单粗暴，但有效！UPDATE typecho_options SET value = 'a:0:{}' WHERE name = 'plugins';4.2 清理 panelTable 里的残留UPDATE typecho_options SET value = REPLACE(value, 's:10:"WebFirewa";a:1:{s:13:"activated";b:1;s:7:"version";s:5:"1.0.0";}', '') WHERE name = 'panelTable' AND value LIKE '%WebFirewa%';4.3 见证奇迹的时刻✨修改完数据库，怀着激动的心，颤抖的手，刷新博客首页——恢复了！恢复了！ 我的博客又回来了！五、打扫战场，收尾工作 ?5.1 重新启用插件赶紧登录后台 → 插件管理，把我之前用的那些正经插件（比如 pScaleUpPlus、AutoSlug 这些）重新启用起来。谢天谢地，配置都还在，不用重新设置。六、吃一堑，长一智的经验总结 ?6.1 插件故障时，UI 按钮就是个弟弟插件自己都挂了，它那个“禁用”按钮的代码根本跑不起来。这时候：✅ 直接操作数据库，那才是最根本的解决方案❌ 死磕后台那个按钮，只会让你怀疑人生七、给兄弟姐妹们的几句心里话 ❤️数据库一定要定期备份！ —— 这玩意儿关键时刻能救你老命插件这玩意儿，够用就行，别贪多 —— 每多一个插件，就多一个潜在的雷学会直接操作数据库 —— 这是绕过所有 UI 故障的终极大招，值得拥有结语这次故障从发生到解决，前前后后花了差不多半天。虽然过程挺折腾人的，但也让我对 Typecho 的插件原理、数据库结构、以及缓存策略这些，都有了更深的理解。如果你也遇到类似的倒霉事儿，希望这篇文章能给你指条明路，少走点弯路。有啥问题或者想交流的，欢迎在下面留言！?
一键使用远程火狐浏览器来上Google来查收录情况
? 火狐浏览器还能这么玩？在服务器上跑个远程版，真香！?大家熟知的 Firefox（火狐），其实还可以塞进服务器里，通过 VNC 远程访问。 简单说就是：你控制的是一个住在云端的浏览器 ?{cloud title="原仓库地址" type="github" url="https://github.com/jlesage/docker-firefox" password=""/}❓ 这玩意儿能干吗？为啥不直接用电脑浏览器？好问题！一开始我也觉得多此一举，直到发现一个神仙用法： 如果你的服务器在境外，那这个远程火狐就可以直连 Google， 不需要任何 VPN、代理，嗖的一下就能打开Google 搜索、Google Console， 检查博客收录、看 Search Console 数据，就跟在本地用一样丝滑～ ?? 相当于你拥有一个永不关机的海外浏览器，随时掏出来用 VNC 连上去干活！? 一键 Run 起来先把容器环境准备好，然后执行下面这行命令 ?docker run -d \ --name=firefox \ -p 5800:5800 \ -v /docker/appdata/firefox:/config:rw \ -e ENABLE_CJK_FONT=1 \ -e LANG=zh_CN.UTF-8 \ jlesage/firefox? 参数都是干啥的？拆开看看！参数作用备注-e TZ=Asia/Hong_Kong设置时区避免时间错乱 ?-e DISPLAY_WIDTH=1920-e DISPLAY_HEIGHT=1080分辨率想要 4K？自己改数字～-e KEEP_APP_RUNNING=1保持运行关了浏览器窗口也不退出 ✅-e ENABLE_CJK_FONT=1中文字体支持告别乱码，舒服看中文 ?-e LANG=zh_CN.UTF-8界面语言设置成中文（舒服！）-e SECURE_CONNECTION=1启用 HTTPSWeb 访问更安全 ?-e VNC_PASSWORD=adminVNC 密码自己改个复杂点的！-p 5800:5800HTTP 访问端口浏览器里打开网页版界面 ?-p 5900:5900VNC 端口用 VNC 客户端连上来-v /data/firefox/config:/config:rw挂载配置目录书签、密码全存下来，重启不丢 ?--shm-size 2g共享内存跑复杂页面不卡，给足 2G ??️ 防火墙小贴士如果你只想本机访问，不想暴露到公网，可以把端口映射改成：-p 127.0.0.1:5800:5800这样只有服务器自己才能连，更安全 ?? 最后说两句这种“云端火狐”其实还有很多玩法：跑自动化脚本（搭配 Selenium）多人共享一个浏览器环境临时需要一个干净的浏览器，不想装软件总之，一旦用上就回不去了 ? 你也赶紧试试吧，有问题欢迎留言交流～
? 救命！从1panel搬家到宝塔，Docker折腾死我了！? 今天也不知道哪根筋搭错了?，看着1panel那个面板越看越不顺眼，突然就想：换！马上换宝塔！ ?? 第一步：从1panel导出1️⃣ 打开你的1panel面板 2️⃣ 找到 容器 → 更多 → 制作镜像3️⃣ 【敲黑板！重点来了！】 ?1.点开 容器 → 更多 → 数据卷 2.找到挂载点，瞅一眼存档位置在哪 ? 3.然后——把所有数据卷全部压缩下载导出！ 一个都别落下！?? 别问我为啥要这一步，问就是踩过坑了?? 第二步：宝塔那边怎么搞？1️⃣ 打开你的宝塔面板 2️⃣ Docker → 镜像 → 导入镜像（把刚刚1panel导出的镜像扔进去）3️⃣ 创建容器 —— 这一步应该不用教了吧？?4️⃣ 【第二个重点！拿小本本记下来！】 ?Docker → 存储卷 ? 找到你那个项目的地址 开一个新窗口，文件管理直接输入路径 把1panel导出的文件，一股脑全覆盖进去！ ?5️⃣ 【最后一步！】重启！重启！重启！ 重要的事情说三遍！?? 搞定！折腾了一下午，终于搞定了... 看着宝塔那个熟悉的面板，突然觉得——还是原来的配方，还是熟悉的味道～ ?? 划重点总结：✅ 1panel导出：镜像 + 数据卷✅ 宝塔导入：镜像 → 容器 → 覆盖存储卷 → 重启❌ 别偷懒只导镜像，不然数据没了哭都来不及?? 等等，我好像悟了...话说回来，宝塔导1panel，1panel导宝塔，不都是Docker吗？ 这玩意儿难道还能有差别？?? 其实真相是这样的很多人（包括博主本人）一开始都以为：Docker镜像 = Ghost备份 ?Ghost： 整个C盘给你端走，注册表、文档、桌面壁纸、甚至你八百年前忘删的迅雷安装包，全在里面躺着。Docker镜像： 呵，想多了? 你只是把“刚装好系统的那一刻”打包了。 你后来存的论文?、下的电影?、浏览器收藏夹?，全在另一个分区——也就是数据卷里，压根没跟你走。? 所以正确的搬家姿势其实是：? 1panel → 宝塔1panel端：✅ 导出镜像✅ 导出存储卷宝塔端：✅ 导入镜像✅ 导入存储卷? 宝塔 → 1panel反过来也一样：✅ 宝塔导出镜像✅ 宝塔导出存储卷✅ 1panel导入镜像✅ 1panel导入存储卷
给你的博客添加一个举报系统来举报自己（免数据库）
举报管理系统 - 完整技术文档注意，该程序由AI生成默认密码：123456一款轻量级无数据库（文件存储）的举报提交、结果查询与管理员后台管理系统，无需搭建数据库环境，直接部署即可使用{cloud title="举报系统下载" type="github" url="https://github.com/fghdz/ReportManagementSystem-PHP-#" password=""/}一、系统概述1.1 核心功能该系统包含三大核心模块，实现举报业务的全流程覆盖，无需依赖 MySQL、MongoDB 等数据库，通过本地文本文件存储数据，部署便捷、轻量化运行：举报提交模块：用户填写违规分类、举报标题、详细原因，提交后生成唯一举报编号，支持字数限制校验、必填项校验。举报结果查询模块：用户通过举报编号查询举报详情及管理员回复，支持浮窗查看完整截断内容。管理员后台模块：管理员登录后可管理举报数据（回复、编辑、删除、新增）、违规分类（新增、删除）、配置举报最大字数限制，支持举报编号搜索与分页展示。1.2 适用场景小型网站、个人博客、自媒体平台的违规内容举报收集无需复杂数据库部署的轻量级业务场景快速搭建临时举报通道，无需服务器额外配置对数据存储要求简单，无需高并发支持的场景1.3 优势特点无数据库依赖：基于文本文件序列化存储，部署零配置，直接上传至 PHP 运行环境即可使用功能完整：覆盖举报提交、查询、管理全流程，满足基础举报业务需求交互友好：支持浮窗查看完整内容、实时字数统计、操作提示、分页展示易于扩展：代码结构清晰，可快速新增字段、扩展功能权限控制：管理员后台密码验证，保障数据管理安全性二、技术架构与原理2.1 核心技术栈前端：HTML5 + CSS3 + JavaScript（原生JS，无框架依赖）后端：PHP 5.4+（兼容绝大多数虚拟主机PHP版本）数据存储：PHP序列化 + 本地文本文件（.txt格式）2.2 核心工作原理数据序列化与反序列化系统核心依赖PHP的序列化和反序列化机制实现数据的存储与读取：序列化：将存储举报数据、违规分类、配置信息的PHP数组，转换为可写入文本文件的字符串格式反序列化：读取文本文件中的字符串内容，转换为PHP可直接操作的数组，实现数据查询与修改优势：无需数据库驱动，数据存储格式简单，可直接打开文本文件查看原始数据浮窗交互原理采用「数据属性存储 + JS事件绑定」的方式实现浮窗功能，彻底规避引号嵌套冲突：前端：通过自定义数据属性存储浮窗标题与完整内容，不直接在事件中嵌套业务数据JS：DOM加载完成后，批量绑定截断文本的点击事件，通过读取数据属性内容，渲染并显示浮窗辅助功能：支持点击浮窗外层关闭、ESC按键关闭，提升交互体验权限控制原理管理员后台基于PHP Session实现简易权限验证：管理员输入正确密码后，创建专属Session并标记为登录状态后台页面首行验证Session状态，若未登录则自动跳转至登录界面支持手动退出登录，销毁对应Session数据，保障后台安全性字数校验与统计原理前端：通过原生JS实现实时字数统计，采用兼容中文字符的计数逻辑，与PHP端计数规则保持一致后端：PHP端再次进行字数校验，防止前端绕过校验提交非法数据配置联动：管理员修改最大字数后，配置文件实时更新，前端自动读取最新配置，无需重启服务搜索与分页原理搜索：通过数组过滤功能，匹配举报编号关键字，实现精准搜索分页：基于数组切片功能，根据每页显示条数与当前页码，截取对应数据片段，实现分页展示，支持上一页、下一页切换三、文件结构与数据存放位置3.1 完整文件列表文件名模块功能文件类型核心作用report_submit.php举报提交模块PHP 文件用户提交举报信息，数据校验，生成唯一举报编号，序列化存储举报数据report_results.php举报结果查询模块PHP 文件用户通过举报编号查询详情，浮窗查看完整内容，展示管理员回复admin_panel.php管理员后台模块PHP 文件管理员登录、举报管理、违规分类管理、字数配置管理、搜索与分页reports_data.txt举报数据存储文件文本文件存储所有举报数据（举报编号、违规分类、标题、原因、回复等）violation_types.txt违规分类存储文件文本文件存储违规分类列表（可由管理员新增/删除）config.txt系统配置存储文件文本文件存储最大举报字数配置（控制标题与原因的最大输入长度）3.2 数据存放位置说明所有数据文件均与PHP业务文件同级存放（即同一目录下），无需创建额外文件夹，部署时直接上传所有文件即可自动生成数据文件（若文件不存在）数据文件自动生成：系统运行时，若举报数据、违规分类、配置文件不存在，会自动创建并写入默认初始数据数据持久化存储：所有操作（提交举报、回复举报、修改分类、配置字数）都会实时写入对应.txt文件，数据不会丢失（除非手动删除文本文件）数据文件可直接编辑：若需批量修改数据，可直接用记事本、VS Code等工具打开.txt文件，修改后保存即可（不建议非技术人员手动操作，避免数据格式损坏）3.3 数据结构说明（1）举报数据（reports_data.txt）核心数据字段包含：唯一举报编号（格式：REP-年月日时分秒-四位随机数）违规分类（多个分类用中文逗号拼接）举报标题举报详细原因提交时间提交者IP地址管理员回复（默认为空）（2）违规分类数据（violation_types.txt）为一维列表结构，存储默认及管理员自定义的违规分类，默认包含色情、谣言、人身攻击、侵权、广告骚扰、其他违规等分类。（3）系统配置数据（config.txt）核心配置字段为最大举报字数（默认2000字），用于控制举报标题与详细原因的输入长度限制。四、部署与使用说明4.1 部署要求服务器/虚拟主机支持PHP 5.4+（兼容PHP 7.x、8.x版本）服务器目录具备读写权限（需写入.txt数据文件，大部分虚拟主机默认开启）无需数据库支持，无需额外安装扩展（依赖PHP内置函数，默认启用）4.2 部署步骤下载所有系统文件（3个PHP业务文件）将所有文件上传至PHP运行环境的网站根目录（或自定义子目录）直接访问对应PHP文件即可使用：举报提交：http://你的域名/report_submit.php结果查询：http://你的域名/report_results.php管理员后台：http://你的域名/admin_panel.php（默认密码需修改，保障安全）4.3 使用说明（1）用户端使用（举报提交 + 结果查询）举报提交：访问举报提交页面，勾选违规分类（可多选）填写举报标题与详细原因（实时显示字数，超出最大限制会给出提示）点击提交按钮，生成唯一举报编号，需妥善保存该编号用于查询结果结果查询：访问结果查询页面，输入已保存的举报编号点击查询按钮，查看举报详情点击蓝色可点击的截断文本，弹出浮窗查看完整内容查看管理员是否已给出回复（2）管理员端使用（后台管理）登录后台：访问管理员后台页面，输入默认密码登录，默认密码：123456建议首次登录后，在代码中修改默认密码，提升安全性举报管理：搜索：输入举报编号，筛选对应举报数据回复：针对指定举报填写回复内容，提交后实时更新编辑：修改举报的分类、标题、原因、提交IP等信息删除：确认后永久删除指定举报数据（不可恢复）新增：手动添加举报数据，补充完整字段信息分页：默认每页显示10条数据，支持上一页、下一页切换查看违规分类管理：新增分类：输入分类名称，点击新增按钮即可添加至分类列表删除分类：点击对应分类后的删除按钮，确认后完成删除字数配置管理：在字数限制配置模块，修改最大允许输入字数点击保存修改后，配置实时生效，同步控制前端提交页面的输入长度五、常见问题与解决方案5.1 语法错误相关PHP报错：Parse error: syntax error, unexpected string content "", expecting "]"原因：PHP字符串引号嵌套冲突、代码截断、文件残留无效字符解决方案：采用数据属性存储业务内容、全选替换完整代码、将文件保存为UTF-8无BOM编码JS报错：Uncaught SyntaxError: Invalid or unexpected token原因：未转义的特殊字符（换行、制表符）、UTF-8 BOM头干扰、代码残留无效字符解决方案：过滤业务数据中的换行与制表符、移除文件BOM头、清理代码中的无效字符、简化JS执行逻辑5.2 功能异常相关浮窗无法弹出原因：JS事件未绑定成功、页面元素未加载完成、CSS显示属性配置异常解决方案：在DOM加载完成后绑定事件、检查元素ID一致性、确保浮窗CSS显示属性配置正确数据无法保存原因：服务器目录无读写权限、数据文件被锁定或损坏解决方案：联系主机商开启目录读写权限、手动删除损坏的.txt数据文件（系统会自动重建）管理员登录失败原因：密码输入错误、PHP Session功能未启用解决方案：核对管理员密码、确认服务器已开启Session功能（大部分主机默认开启）5.3 扩展功能相关如何修改默认密码打开管理员后台PHP文件，找到密码配置变量，将默认密码替换为自定义密码即可如何修改每页显示条数打开管理员后台PHP文件，找到分页条数配置变量，修改对应数值即可（如20、30）如何新增举报字段第一步：在举报提交页面新增对应表单字段第二步：在数据存储逻辑中新增对应字段第三步：在管理员后台与结果查询页面新增该字段的展示与编辑逻辑六、总结该举报管理系统是一款轻量化、无数据库依赖的解决方案，通过PHP序列化与文本文件存储实现数据持久化，前端采用原生JS实现交互功能，部署便捷、功能完整、易于扩展。系统涵盖举报提交、结果查询、管理员后台三大核心模块，支持字数校验、浮窗查看、搜索分页、分类管理等实用功能，适用于小型网站、个人博客等轻量级举报业务场景。所有数据文件与业务文件同级存放，自动生成、实时更新，无需复杂配置。若需扩展功能，可基于现有代码结构快速新增字段与业务逻辑，满足个性化需求。
本站同款图片压缩工具，节省带宽/流量（有损和无损）
? 超实用！Pinga图片压缩工具使用全攻略? 1. 工具核心价值与适配系统1.1 ? 工具核心价值嘿，朋友们！Pinga 只有3M左右?。它最大的亮点就是 “高压缩比 + 低画质损失”，操作那叫一个简单，还支持批量处理图片呢。十分照顾本站的3M小水管~1.2 ? 适配系统不过要注意啦，目前它只兼容 Windows 系统（Win7 及以上版本）哦?。? 2. 下载与安装步骤{cloud title="Pinga下载 外链下载" type="default" url="https://wwbso.lanzoue.com/b02dke0t2h" password="bzul"/}⚙️ 3. 图片压缩步骤3.1 ? 图片压缩步骤启动软件：打开 Pinga，一进去就能看到默认显示的 “压缩设置” 面板，是不是还挺简洁明了的?。导入图片：直接导入就好，支持批量导入。配置压缩参数：压缩模式：在界面顶部可以选择 “无损压缩” 或者 “有损压缩”。无损压缩：这个很省心，不用额外设置，它会默认保持画质不变的。（压缩比例太低了）有损压缩：可以拖动 “压缩强度” 滑块，范围是 1 - 10 级。1 级的话画质损失最小，当然体积缩减也有限；10 级画质损失会大一些，但体积缩减很显著。一般日常使用选 3 - 5 级就挺合适的。（推荐✅）尺寸调整（可选）：要是你想调整图片大小，就勾选 “调整尺寸”，然后输入最大宽或者高的数值就行（只要输入一项，系统会自动锁定比例的），单位可以选 “像素” 或者 “百分比”。（本站是喜欢用640像素）输出路径：⚠️ 默认是直接覆盖原文件哦，注意备份⚠️开始压缩：一切都设置好啦，点击界面右下角的 “压缩” 按钮，软件就开始工作咯，进度条会实时显示处理状态，看着它一点点前进是不是还挺期待的喵~?。查看结果：压缩完成后会弹出 “处理成功” 的提示，这时候点击 “打开输出文件夹”，就能看到压缩后的图片啦?。? 4. 进阶技巧：个性化需求配置4.1 ? 特殊场景参数设置设计稿压缩：要是你处理的是像 PNG 这种带透明通道的设计图，想保留透明通道，那就选 “无损压缩”，然后在 “高级设置” 里勾选 “保留透明通道” 就好啦。社交媒体配图：要是想控制图片体积在 500KB 以内，那就选 “有损
【转载】给你的typecho的Joe主题博客主题添加底部导航栏
✨ 本站同款勉强能用的版本哦 ✨我们需要引入一个外部 CSS 文件来定义底部导航栏的样式。这里采用 CDN 链接，既保证样式快速加载，又能自动同步更新~? 第一步 - 引入 CSS 部分 通过外部 CSS 文件定义底部导航栏样式，CDN 链接让加载更高效、样式更新更及时 。可以使用主题自带的全局插入css哦：? 第二步 - 写入前端? 还是使用主题自带的插入全局自定义底部功能 首页 友链 游戏 小工具 AI ⚠️ 图标使用说明：参考一：本站顶部图标样式可参考 → 「主题美化指南：自定义顶部图标设计与实现」参考二：前往 iconfont 挑选心仪图标后引用（不会操作可百度，或点击底部评论，一般看见的都会回复） 引入自己的css，不要直接复制粘贴的喵~ 然后，把地址复制替换在span里面就像了图标CSS链接生成和挑选? 总结：✅ 将上述代码添加到博客主题的底部文件位置 ✅ 代码定义了包含五个链接的底部导航栏 ✅ 每个链接搭配图标+文本标签，视觉更清晰原文地址：https://blog.heylie.cn/archives/432/
注意，本工具由AI生成，甚至本文章都是AI，配图也是AI，因为作者太懒了，?️ 图片加密解密工具代码解析? 项目概述这是一个基于Web的图片加密解密工具，采用纯前端技术实现，确保用户数据隐私安全?️ HTML结构分析? 页面整体结构DOCTYPE声明：使用HTML5标准语言设置：中文简体（zh-CN）响应式设计：支持移动端适配? 主要组件模块? 加密功能区域文件拖放区域：支持拖拽或点击选择图片文件列表显示：实时显示已选择的图片文件密码输入框：用于设置加密密码进度指示器：显示加密处理进度? 解密功能区域ZIP文件拖放：专门处理加密后的ZIP文件密码验证：输入解密密码进度反馈：显示解密处理状态? 相关代码/在线测试地址{hide} 在线体验加密 图片加密解密工具 图片加密解密工具 安全、快速、无需上传到服务器 图片加密 图片解密 ? 拖放图片到这里 或点击选择图片文件 加密并压缩下载 处理中... 提示： 加密后的文件将自动打包为ZIP格式下载，请妥善保管密码。 ? 拖放加密的ZIP文件到这里 或点击选择ZIP文件 解密并下载图片 处理中... 提示： 解密后图片将自动打包下载，无需手动解压。 {/hide}
? 引言 在 Linux 系统中，CPU 性能模式直接影响服务器的运行效率。对于需要高性能的场景（如游戏服务器、高并发服务），将 CPU 调节至高性能模式能显著提升处理能力。本文将详细介绍如何使用 cpufrequtils 工具从安装到配置的完整流程，包括手动逐核心设置和自动脚本配置两种方式。 注意事项：请确认你的系统是Ubuntu/Debian，如果你使用的是CentOS/RHEL 7，请把apt换成yum 原频率：cpu MHz : 2100.001cpu MHz : 2100.001修改后：cpu MHz : 2593.902cpu MHz : 2593.825? 一、安装 cpufrequtils 工具cpufrequtils 是管理 CPU 频率调节的实用工具，支持查询和设置 CPU 运行模式（如高性能、节能等）。根据不同 Linux 发行版，安装命令有所差异：更新软件源sudo apt update安装 cpufrequtilssudo apt install -y cpufrequtils ? 提示：安装完成后，可通过 cpufreq-info --version 验证是否安装成功，若显示版本信息则说明安装正常。 ⚙️ 二、核心概念：CPU 调节模式CPU 主要有以下几种常见调节模式（ governor ）：performance：高性能模式，CPU 始终运行在最高频率，适合对性能要求高的场景。powersave：节能模式，CPU 以最低频率运行，适合低负载、省电场景。ondemand：按需调节，根据负载自动升降频率（默认模式）。userspace：允许用户手动设置固定频率。本文重点讲解如何配置 performance 模式。? 三、手动为单个 CPU 核心设置高性能模式若需精细化控制每个核心的模式（如只让部分核心运行在高性能模式），可按以下步骤操作：3.1 查看 CPU 核心数量首先确定服务器有多少个 CPU 核心：查看核心总数nproc示例输出（8核CPU）：8核心编号从 0 开始（如 8 核对应编号 0~7）。3.2 手动逐核心设置高性能模式使用 cpufreq-set 命令，通过 -c 参数指定核心编号：格式：sudo cpufreq-set -c 核心编号 -g performance示例：为 0~7 号核心分别设置高性能模式sudo cpufreq-set -c 0 -g performance sudo cpufreq-set -c 1 -g performance sudo cpufreq-set -c 2 -g performance sudo cpufreq-set -c 3 -g performance sudo cpufreq-set -c 4 -g performance sudo cpufreq-set -c 5 -g performance sudo cpufreq-set -c 6 -g performance sudo cpufreq-set -c 7 -g performance3.3 验证单个核心的模式检查指定核心是否已切换为 performance 模式：# 查看 0 号核心模式 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor# 查看 3 号核心模式 cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor若输出为 performance，则设置成功。 ⚠️ 注意：手动设置仅对当前会话有效，服务器重启后会恢复默认模式。 ? 四、自动脚本：批量设置所有核心为高性能模式若需一次性配置所有核心，可使用脚本批量操作，效率更高。#假设你是4核心 for i in {0..3}; do sudo cpufreq-set -c $i -g performance; done#假设你是2核心 for i in {0..1}; do sudo cpufreq-set -c $i -g performance; done4.3 验证所有核心的模式# 查看所有核心的当前模式 grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor若所有输出均为 performance，则批量设置成功。? 五、设置永久生效（重启不失效）上述方法在服务器重启后会失效，若需永久生效，可通过系统服务实现：5.1 创建 systemd 服务文件sudo nano /etc/systemd/system/cpu-performance.service服务内容如下：[Unit] Description=Set all CPU cores to performance mode on boot After=multi-user.target [Service] Type=oneshot ExecStart=/bin/bash -c 'for core in $(seq 0 $(($(nproc) - 1))); do echo performance > /sys/devices/system/cpu/cpu$core/cpufreq/scaling_governor; done' RemainAfterExit=true [Install] WantedBy=multi-user.target5.2 启用并启动服务# 重新加载 systemd 配置 sudo systemctl daemon-reload # 设置开机自启 sudo systemctl enable cpu-performance.service # 立即生效 sudo systemctl start cpu-performance.service5.3 验证服务状态# 查看服务是否正常运行 sudo systemctl status cpu-performance.service若显示 active (exited) 则说明服务生效。? 六、查看 CPU 频率验证性能模式设置完成后，可通过以下命令查看 CPU 实时频率，验证高性能模式是否真正生效：6.1 列出所有 CPU 核心的主频信息。（所有核心）# 当前最大和最小的频率 lscpu | grep -E 'MHz|Model name'6.2 查看实时频率（对比参考）# 推荐使用的查看方式 cat /proc/cpuinfo | grep "cpu MHz"#使用 dmidecode 命令可以从系统的 DMI（Desktop Management Interface）表中提取硬件信息，包括 CPU 的主频。 sudo dmidecode -t processor | grep "Current Speed"6.3 实时监控频率变化# 每 1 秒刷新一次频率信息 watch -n 1 "grep . /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq"（按 Ctrl+C 退出监控） ✅ 成功标志：高性能模式下，CPU 频率会接近或达到 cpuinfo_max_freq 数值，显著高于节能模式下的频率。 ⚠️ 七、注意事项 重要提示 ?️ 高性能模式会增加 CPU 功耗和温度，确保服务器散热良好，避免过热。 ☁️ 部分云服务器或虚拟机可能限制 CPU 频率调节功能，设置后可能不生效。 ? 若需恢复默认模式，将命令中的 performance 替换为 ondemand 或 powersave 即可。 ? 不同 CPU 型号的最大频率不同，以实际硬件支持为准。 ? 八、总结通过 cpufrequtils 工具，我们可以灵活控制 Linux 服务器的 CPU 性能模式：✋ 手动模式适合精细化调节单个核心，满足特殊场景需求；? 自动脚本和系统服务适合批量配置，确保所有核心高效运行且重启不失效。根据实际业务需求选择合适的配置方式，可在性能与能耗之间取得最佳平衡。`;