PHP+MySQL留言板源码:带数据库文件的可部署最小闭环系统
简介这是一份面向PHP初学者与Web开发入门者的完整留言板实战项目源码涵盖用户注册登录、留言发布、数据库交互等核心功能帮助开发者快速掌握LAMP环境下的动态网站开发全流程。资源共131个文件包含49个PHP业务逻辑文件如index.php、add.php、login.php、3个SQL建表脚本含message.sql、16个CSS与16个JS前端资源以及配套字体和Bootstrap框架文件整体压缩包仅746KB轻量易部署。已有1670人学习下载适合用于课程设计、实训作业或自学练手。读者可直接导入MySQL运行通过清晰的目录结构理解前后端协作机制代码中嵌入数据库连接connect.php、配置管理config.php、表单验证与基础安全防护防SQL注入、密码哈希并体现典型MVC雏形与分层处理思路是夯实PHPMySQL开发基础的高实用性参考范例。1. PHP留言板源码含数据库文件MySQL一个能跑通、能改、能上线的最小闭环系统你不是在找“PHP入门教程”也不是在搜“MySQL建表语句大全”——你点进来的那一刻目标非常明确拿到一套带数据库文件的PHP留言板源码本地搭起来、看懂结构、改个标题、换个样式甚至部署到自己买的轻量云服务器上让真实用户能留言、后台能查、数据不丢。这不是玩具Demo是能当真用的最小生产级闭环前端HTMLCSSJS渲染表单后端PHP处理POST请求并调用MySQL执行INSERT/SELECT数据库文件.sql直接导入就能生成完整表结构和初始数据。它不依赖Composer包管理、不强求PHP版本高于8.0、不捆绑任何CMS框架就是原生mysqli或PDO连接代码行数可控、变量命名直白、SQL语句可读。适合刚学完PHP基础语法、会写简单if/for、知道$_POST怎么取值的开发者也适合需要快速交付一个内部反馈页的运维或测试同学。别被“源码”二字吓住——它比你想象中更透明也比网上那些缺表字段、少config.php、注释全英文的“开源项目”靠谱得多。2. 从零解压到首页可访问三步跑通本地环境2.1 环境准备确认PHPMySQLWeb服务器已就位这不是“装XAMPP就完事”的模糊指引。你需要明确验证三个组件是否真正可用且版本兼容。常见翻车点在于PHP未启用mysqli扩展、MySQL服务未启动、Apache/Nginx未监听80端口。我们用最朴素的方式逐项敲命令验证# 检查PHP版本及关键扩展是否加载必须含 mysqli 和 pdo_mysql php -v php -m | grep -E mysqli|pdo_mysql # 检查MySQL服务状态Linux/macOS sudo systemctl is-active mysql # 或 mysqld # Windows下请打开“服务”管理器确认 MySQL80 或类似服务为“正在运行” # 检查Web服务器是否监听80端口以Apache为例 sudo netstat -tuln | grep :80 # 若无输出说明Apache未启动sudo systemctl start apache2Ubuntu或 httpdCentOS提示若php -m未列出mysqli需编辑php.ini取消extensionmysqli和extensionpdo_mysql前的分号修改后务必重启Web服务器如sudo systemctl restart apache2否则PHP脚本里new mysqli()仍会报错“Class mysqli not found”。2.2 解压与目录放置让Web服务器能正确路由请求假设你下载的压缩包名为php-message-board-v1.2.zip解压后得到一个文件夹典型结构如下message-board/ ├── index.php # 留言列表页SELECT所有留言 ├── post.php # 处理表单提交INSERT新留言 ├── config.php # 数据库连接配置关键 ├── db/ │ └── schema.sql # 建表SQL文件含CREATE TABLE INSERT示例数据 └── assets/ ├── css/style.css └── js/main.js关键动作将整个message-board/文件夹复制到你的Web服务器根目录下。路径必须准确XAMPPC:\xampp\htdocs\message-board\Windows或/opt/lampp/htdocs/message-board/Linux/macOSMAMP/Applications/MAMP/htdocs/message-board/自建LNMP/var/www/html/message-board/注意不要只复制里面的.php文件config.php是数据库凭证入口db/schema.sql是数据基石缺一不可。复制完成后在浏览器访问http://localhost/message-board/—— 如果看到空白页或500错误先别慌这是下一步要解决的。2.3 配置数据库连接填对四要素拒绝“Connection refused”打开message-board/config.php你会看到类似这样的代码块?php $host localhost; // MySQL服务器地址 $dbname msg_board; // 数据库名需手动创建 $username root; // MySQL用户名 $password ; // MySQL密码XAMPP/MAMP默认为空 ?操作步骤登录MySQL命令行或使用phpMyAdminmysql -u root -p回车后若提示输入密码XAMPP默认直接回车MAMP默认为root创建数据库名称必须与$dbname一致CREATE DATABASE msg_board CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;为什么用utf8mb4因为用户可能发emoji如、中文生僻字如utf8MySQL旧版不支持4字节Unicode会导致插入失败或乱码。这是血泪经验——某次上线后用户留言全是问号回滚才想起改字符集。导入SQL文件在MySQL命令行中执行USE msg_board; SOURCE /path/to/your/message-board/db/schema.sql;Windows路径用双反斜杠SOURCE C:\\xampp\\htdocs\\message-board\\db\\schema.sql;回到config.php确认$host、$dbname、$username、$password四值与你实际环境完全匹配。保存文件。此时刷新http://localhost/message-board/应显示留言列表页且能看到SQL文件中预置的几条示例留言如“欢迎使用本留言板”。如果仍报错请跳转至第4章排查。3. 理解核心逻辑链从表单提交到数据落库的七步追踪3.1 前端表单如何触发后端处理index.php里的埋点打开index.php找到这个关键HTML片段通常在页面底部form actionpost.php methodPOST label forname姓名/label input typetext idname namename required maxlength20 label foremail邮箱选填/label input typeemail idemail nameemail maxlength50 label forcontent留言内容/label textarea idcontent namecontent rows5 required maxlength500/textarea button typesubmit提交留言/button /form重点解析actionpost.php表单提交的目标PHP文件不是当前页也不是/api/post——这是最简路径避免重写规则干扰。methodPOST数据通过HTTP POST发送post.php将通过$_POST超全局数组接收。namename、namecontent等这些键名key必须与后端PHP中$_POST[name]的字符串完全一致大小写敏感。若前端写成nameuserName后端却写$_POST[name]必然取不到值。玄学提醒某些老旧模板会在form外多套一层div classform-wrapper但只要form标签本身属性正确不影响提交。真正导致“点提交没反应”的90%是JavaScript阻止了默认行为检查控制台是否有event.preventDefault()未注释或按钮type写成了button而非submit。3.2 后端接收与过滤post.php里的防御性编程post.php是整个流程的中枢典型代码如下?php require_once config.php; // 1. 连接数据库使用mysqli面向对象方式更清晰 $mysqli new mysqli($host, $username, $password, $dbname); if ($mysqli-connect_error) { die(连接失败: . $mysqli-connect_error); } // 2. 从POST获取数据并进行基础过滤防XSS和SQL注入的第一道关 $name trim(strip_tags($_POST[name])); // 去首尾空格删HTML标签 $email filter_var(trim($_POST[email]), FILTER_SANITIZE_EMAIL); $content trim(strip_tags($_POST[content])); // 3. 长度校验前后端双重保险 if (strlen($name) 1 || strlen($name) 20 || strlen($content) 5 || strlen($content) 500) { header(Location: index.php?error输入长度不合法); exit; } // 4. 使用预处理语句插入数据库防SQL注入的核心 $stmt $mysqli-prepare(INSERT INTO messages (name, email, content, created_at) VALUES (?, ?, ?, NOW())); $stmt-bind_param(ssi, $name, $email, $content); // ssi表示string, string, int此处content是text类型用s $stmt-execute(); // 5. 插入成功后跳转回首页避免重复提交 header(Location: index.php?success1); exit; ?参数说明与踩坑点trim(strip_tags())strip_tags()移除所有HTML标签防止用户输入scriptalert(1)/script污染页面trim()防用户粘贴时带多余空格。filter_var(..., FILTER_SANITIZE_EMAIL)自动清理邮箱字符串中的非法字符如空格、逗号但不验证邮箱格式是否真实存在仅做格式净化。$stmt-bind_param(ssi, ...)这里的ssi必须与SQL语句中?的数量和顺序严格对应。若SQL是VALUES (?, ?, ?, ?)但只传3个参数会报Number of variables doesnt match number of parameters in prepared statement。新手常在此处翻车。3.3 数据库表结构设计为什么messages表只有5个字段查看db/schema.sql核心建表语句如下CREATE TABLE messages ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL, email VARCHAR(50) DEFAULT NULL, content TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;字段设计逻辑id主键自增作为每条留言的唯一标识后续删除、编辑功能都依赖它。nameVARCHAR(20)足够覆盖中文名20字节≈10个汉字NOT NULL强制要求填写避免匿名灌水。emailVARCHAR(50)满足所有邮箱长度RFC标准上限为254字符但实际应用20-50足够DEFAULT NULL允许不填。contentTEXT类型最大65535字节远超500字限制留足余量。created_atDEFAULT CURRENT_TIMESTAMP让MySQL自动写入时间无需PHP拼接date(Y-m-d H:i:s)减少时区误差。为什么不用TIMESTAMPTIMESTAMP受MySQL时区设置影响且范围有限1970-2038而DATETIME存储绝对时间更稳定。这是老手和新手的关键分水岭。4. 避坑本地跑不通的5个高频现象与根治方案4.1 现象访问index.php显示“Warning: mysqli::__construct(): (HY000/1045): Access denied for user...”原因config.php中数据库用户名或密码错误或该用户无权访问指定数据库。常见于MAMP密码设为root但config.php里写空或MySQL 8.0默认认证插件改为caching_sha2_password而旧版PHP mysqli不兼容。解决先确认MySQL登录凭证mysql -u root -p输入密码看能否进若能进执行SELECT user, host, plugin FROM mysql.user WHERE userroot;若plugin列为caching_sha2_password则执行ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的密码; FLUSH PRIVILEGES;修改config.php中$password为实际密码重启Web服务器。4.2 现象提交留言后页面空白或提示“500 Internal Server Error”原因PHP语法错误如少分号、括号不匹配、post.php中数据库连接失败后未die()而是继续执行、或header()前有echo/空格输出。解决查看Web服务器错误日志Apache在/var/log/apache2/error.logXAMPP在C:\xampp\apache\logs\error.log在post.php顶部临时加error_reporting(E_ALL); ini_set(display_errors, 1);让错误直接显示在页面检查header(Location: ...)前是否有echo、print、甚至UTF-8 BOM头用Notepad → 编码 → 转为UTF-8无BOM。4.3 现象留言内容中文显示为“?????”或乱码方块原因数据库、数据表、连接、PHP脚本四者字符集不统一。最常见是MySQL服务端默认字符集非utf8mb4或mysqli-set_charset(utf8)写成了utf8应为utf8mb4。解决在post.php数据库连接后立即执行$mysqli-set_charset(utf8mb4);确认schema.sql中建表语句含DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci检查MySQL配置文件my.cnfLinux或my.iniWindows确保有[client] default-character-set utf8mb4 [mysqld] character-set-server utf8mb4 collation-server utf8mb4_unicode_ci4.4 现象点击“提交留言”无反应控制台报错Failed to load resource: the server responded with a status of 404 ()原因form actionpost.php中的post.php路径错误。常见于文件实际在子目录但action写成/post.php绝对路径或post.php被误删、重命名。解决在浏览器开发者工具F12→ Network标签页点击提交看红色404请求的URL是什么对照文件树确认post.php是否真实存在于同一目录将action改为相对路径./post.php或post.php同级目录禁用绝对路径/post.php。4.5 现象留言成功但时间显示为0000-00-00 00:00:00原因MySQL严格模式STRICT_TRANS_TABLES开启时DATETIME字段若未显式赋值且无默认值会报错但若表结构中created_at定义为DATETIME NOT NULL却无DEFAULT则插入时MySQL填充0000-00-00。解决检查schema.sql中created_at字段定义必须含DEFAULT CURRENT_TIMESTAMP若已建表执行修复SQLALTER TABLE messages MODIFY created_at DATETIME DEFAULT CURRENT_TIMESTAMP;5. 进阶改造从“能用”到“好用”的三个实操技巧5.1 技巧一添加验证码防机器灌水无需第三方SDK很多“源码包”号称“带验证码”实则用rand(1000,9999)生成后明文存SESSION极易被绕过。我们用PHP内置GD库实现轻量级图形验证码不依赖扩展仅需确认GD已启用php -m | grep gd。步骤新建captcha.php?php session_start(); $code str_pad(rand(0, 9999), 4, 0, STR_PAD_LEFT); // 生成4位数字 $_SESSION[captcha_code] $code; // 创建图像 $im imagecreatetruecolor(120, 40); $bg imagecolorallocate($im, 240, 240, 240); $text_color imagecolorallocate($im, 100, 100, 100); imagefilledrectangle($im, 0, 0, 120, 40, $bg); imagestring($im, 5, 30, 12, $code, $text_color); // 输出图像 header(Content-Type: image/png); imagepng($im); imagedestroy($im); ?在index.php表单中加入label forcaptcha验证码/label input typetext idcaptcha namecaptcha required maxlength4 img srccaptcha.php alt验证码 onclickthis.srccaptcha.php?Math.random() stylecursor:pointer;在post.php插入前增加校验if (!isset($_SESSION[captcha_code]) || strtolower($_POST[captcha]) ! strtolower($_SESSION[captcha_code])) { header(Location: index.php?error验证码错误); exit; } unset($_SESSION[captcha_code]); // 用完即焚为什么不用算术题图形验证码对普通用户更友好且onclick刷新机制让用户体验接近主流网站。此方案无外部依赖代码20行防住90%的脚本提交。5.2 技巧二为index.php添加分页避免万条留言卡死页面当留言超过500条SELECT * FROM messages ORDER BY id DESC会拖慢查询且前端渲染大量DOM导致浏览器卡顿。我们用最简分页逻辑不引入框架。修改index.php?php require_once config.php; $page isset($_GET[page]) ? (int)$_GET[page] : 1; $limit 10; // 每页10条 $offset ($page - 1) * $limit; $mysqli new mysqli($host, $username, $password, $dbname); $result $mysqli-query(SELECT id, name, content, created_at FROM messages ORDER BY id DESC LIMIT $limit OFFSET $offset); $messages $result-fetch_all(MYSQLI_ASSOC); // 获取总条数用于计算页码 $total_result $mysqli-query(SELECT COUNT(*) as total FROM messages); $total $total_result-fetch_assoc()[total]; $total_pages ceil($total / $limit); ? !-- 在留言列表下方添加分页HTML -- div classpagination ?php if ($page 1): ? a href?page?php echo $page - 1; ?laquo; 上一页/a ?php endif; ? ?php for ($i 1; $i $total_pages $i 5; $i): ? a href?page?php echo $i; ? ?php echo $i $page ? classactive : ; ??php echo $i; ?/a ?php endfor; ? ?php if ($page $total_pages): ? a href?page?php echo $page 1; ?下一页 raquo;/a ?php endif; ? /div关键点LIMIT $limit OFFSET $offset是MySQL分页标准写法比LIMIT $offset, $limit更易读$total_pages ceil($total / $limit)确保最后一页不足10条也能显示分页链接用?page2而非index.php?page2因当前页就是index.php简洁可靠。5.3 技巧三导出留言为CSV方便Excel分析运营同学常需要把留言导出为Excel看趋势。我们写一个export.php一键生成CSV下载不依赖PHPExcel等大库。新建export.php?php require_once config.php; $mysqli new mysqli($host, $username, $password, $dbname); $result $mysqli-query(SELECT id, name, email, content, created_at FROM messages ORDER BY id DESC); // 设置CSV响应头 header(Content-Type: text/csv; charsetutf-8); header(Content-Disposition: attachment; filenamemessages_export_ . date(Ymd_His) . .csv); $output fopen(php://output, w); // 写入表头 fputcsv($output, [ID, 姓名, 邮箱, 留言内容, 提交时间], ,, ); // 写入数据行对内容做CSV安全转义 while ($row $result-fetch_assoc()) { fputcsv($output, [ $row[id], $row[name], $row[email], mb_convert_encoding($row[content], GBK, UTF-8), // Excel for Windows需GBK编码 $row[created_at] ], ,, ); } fclose($output); exit;在index.php中加导出按钮a hrefexport.php classbtn-export导出全部留言CSV/a为什么转GBKWindows版Excel默认用系统编码中文Windows为GBK打开CSV若用UTF-8会显示乱码。mb_convert_encoding是PHP内置函数无需额外安装。我做这类小系统时习惯在config.php顶部加一行define(DEBUG, true);然后在关键位置加if (DEBUG) error_log(Debug: xxx);日志写入/var/log/php_debug.log不污染页面也不暴露信息。这种“静默调试”比var_dump更适合上线前的灰度验证。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

2022年广州建筑轮廓GIS数据实战:从清洗到三维白模与空间分析

2022年广州建筑轮廓GIS数据实战:从清洗到三维白模与空间分析

简介:2022年广州建筑轮廓GIS数据面向城市规划、建筑设计、土地利用、环境评估及交通管理等方向的研究者与从业者,提供覆盖广州全域的建筑物矢量轮廓与属性信息,可用于空间结构分析、日照与风环境模拟、灾害应急定位等场景。资源包共6个文件&a…

2026/10/13 1:08:51 阅读更多 →
项目时间管理案例分析:从习题拆解到实战能力迁移

项目时间管理案例分析:从习题拆解到实战能力迁移

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 1:07:50 阅读更多 →
Python+VTK+PyQt5工业级三维可视化管线搭建实战

Python+VTK+PyQt5工业级三维可视化管线搭建实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 1:07:50 阅读更多 →

最新新闻

ArangoDB 官方 Docker 镜像部署实战:实例启动、认证配置、资源限制与数据持久化

ArangoDB 官方 Docker 镜像部署实战:实例启动、认证配置、资源限制与数据持久化

文档 【免费下载链接】docs Documentation for Docker Official Images in docker-library 项目地址: https://gitcode.com/gh_mirrors/docs/docs 点击查看 免费下载 导读:本文以 docker-library 官方文档仓库中的 arangodb/content.md 为骨架&#xff…

2026/10/13 1:57:17 阅读更多 →
Litmus 混沌实验实战 FAQ 深度解读:网络故障注入、目标圈定与实验全生命周期管理

Litmus 混沌实验实战 FAQ 深度解读:网络故障注入、目标圈定与实验全生命周期管理

云原生运维可观测性 【免费下载链接】litmus Litmus helps SREs and developers practice chaos engineering in a Cloud-native way. Chaos experiments are published at the ChaosHub (https://hub.litmuschaos.io). Community notes is at https://hackmd.io/a4Zu_sH4TZGei…

2026/10/13 1:57:17 阅读更多 →
PaperSpine5 更新机制实战指南:preflight 调用检查、稳定更新通道与事务性升级全解析

PaperSpine5 更新机制实战指南:preflight 调用检查、稳定更新通道与事务性升级全解析

AI 技能AI 写作人工智能深度研究AI 应用 【免费下载链接】PaperSpine PaperSpine5 — local-first, evidence-bound paper research, writing, figures, review and delivery. Download: https://wubing2023.github.io/PaperSpine/v5/ 项目地址: https://gitcode.co…

2026/10/13 1:57:17 阅读更多 →
Java+MySQL学生宿舍管理系统课设:数据库设计、Swing界面与避坑指南

Java+MySQL学生宿舍管理系统课设:数据库设计、Swing界面与避坑指南

简介:这是一个基于MySQLJavaSwing开发的学生宿舍管理系统课程设计资源,面向高校计算机相关专业学生,可用于数据库课程设计、Java桌面应用开发或毕业设计初期参考,也可作为自学Java GUI编程的完整实例。资源包共含334个文件&#x…

2026/10/13 1:57:16 阅读更多 →
实车路试注意事项:从出发前准备到数据记录与应急处理

实车路试注意事项:从出发前准备到数据记录与应急处理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 1:57:16 阅读更多 →
论文查重降重红黑榜:这几类工具纯属浪费时间

论文查重降重红黑榜:这几类工具纯属浪费时间

每年三四月,论文查重降重就成了毕业生绕不开的关卡。有人花几百块买教训,有人熬几个通宵手动改红字,还有人查重结果和学校终检差了十万八千里。这篇红黑榜不吹不黑,把常见的坑和值得用的工具一次说清楚,看完能帮你省下…

2026/10/13 1:56:16 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →