PHP借贷源码拆解与本地部署:从业务闭环到避坑实践

简介:一套基于 PHP 实现的借贷公司/网贷平台整站源码,面向需要快速搭建在线借贷系统的技术团队、中小型网贷项目开发者和 PHP 学习者。源码在得得系统基础上完成改编,并经过实际测试可用,覆盖用户注册、信用评估、借款申请、还款计划、逾期处理等借贷业务核心流程,同时也包含在线申请、审批、合同签署及支付接口集成等网贷平台线上模块。压缩包整体约 11.34MB,以 PHP 后端逻辑与网页前端文件为主,附带数据库表结构、系统配置及可能用到的类库文件,便于部署后直接运行或按业务需求二次定制。目前已有 2534 人学习下载,适合作为网贷系统快速上手的蓝本,也可为相关功能模块的开发提供结构参考。

1. 先拆这套 PHP 借贷源码:别急着配环境,先看清业务闭环

最近拆了一套标题很直接的资源包:“借贷公司源码、网贷平台源码、php借贷源码”。搜索“借贷源码 网贷源码 PHP源码”的人,大多不是真要去开平台,而是想拿一个能跑通“借款申请→审核→放款→还款”完整流程的 PHP 项目,用来做课程设计、作品集演示,或者给自己后台系统当原型参考。这套源码真正有价值的部分,是把借贷流程拆成了用户端、管理后台、数据字典三层:用户能提交借款申请、查看还款计划;管理员有审核队列、放款流水和逾期提醒。只要把这套闭环跑通,换掉业务字段就能当通用的订单审批系统用。需要先声明边界:它只适合在本地模拟环境做技术学习和演示,实际经营这类业务需要法定资质,别拿它直接上线。后面所有操作都在本地模拟环境完成。

2. 拆解借贷源码骨架:目录结构、角色权限与数据字典是关键

拿到源码包的第一步不是看 README,而是把压缩包解压后先列目录。常见做法是在本地建一个 loan 目录,把包完整释放进去,然后按“入口文件→控制器→数据表”的顺序过一遍。这一步的目的不是读懂每一行,而是确认几个关键问题:哪些目录是网站根目录、哪些文件是入口、SQL 文件在哪、配置文件的路径长什么样。摸清这些,后面改起来才不会误伤公共层。

loan/ ├── admin/ # 管理后台入口 │ ├── index.php # 后台首页,登录后进入 │ ├── login.php # 后台登录页 │ └── view/ # 后台 HTML 模板 ├── user/ # 用户端业务逻辑 │ ├── index.php # 用户中心入口 │ └── repay.php # 还款相关操作 ├── config/ │ ├── config.php # 站点级参数 │ └── database.php # 数据库连接配置 ├── include/ # 公共函数与数据库操作封装 ├── static/ # JS/CSS/图片等静态资源 └── sql/ └── db.sql # 建库建表初始化脚本

这个目录结构有三个关键观察点:一是 admin 和根目录 index.php 并存,说明前后台入口分离,访问站点根目录是用户端,访问 /admin 是管理端,两者共用 include 里的公共函数;二是 sql 目录独立,说明数据库结构可以直接重建,部署时只要导入 db.sql 即可;三是业务入口都落在 index.php 上,意味着路由分发躲在后面,改代码时不要绕过这个分发入口。下面把三个核心层分别拆开看。

2.1 用户端申请借款:六种状态流转与字段约束是主心骨

用户端对外透露的流程通常由一个状态字段控制。我在模拟项目X里整理了这套源码的流程状态,完整链路是:待审核、审核通过、驳回、放款成功、还款中、已结清,另外还有一个逾期状态在定时任务里流转。核心的借款订单表一般命名为 loan_order,常见字段设计如下表:

字段类型说明
order_idvarchar(32)订单号,一般由日期加随机序列生成
user_idint(11)关联用户表主键
amountdecimal(12,2)借款金额,保留两位小数
termtinyint(4)期数,一般 3、6、12
annual_ratedecimal(5,4)年利率,存储为 0.1200 而不是 12
statustinyint(4)状态机数值:1待审 2通过 3驳回 4放款 5还款中 6结清 7逾期
remarkvarchar(255)审核备注
create_timeint(11)申请时间,用 Unix 时间戳

看到这张表就该意识到:借贷管理系统最怕的是“金额和利率用浮点类型”。我一般会把 float 都改掉,即使演示系统数据量小,float 在连续累加还款本息时也会出现 0.01 级别的误差,答辩现场被揪出来很难看。decimal 是固定精度,存金额和利率都应当用它。

状态流转的逻辑一般由控制器里的方法统一处理。常见做法是写一个 order_status() 方法,接收订单号和目标状态,更新 loan_order 的同时在 loan_log 表追加一条变更记录。这样设计的好处是每次状态变化都有迹可循。某高校的课程设计答辩经常会问“这个订单是从哪一步变到哪一步的”,把 loan_log 推出来就能说明全部流转轨迹,不需要临时去翻代码。

2.2 管理后台三张核心表:订单、放款流水与还款计划

后台页面再复杂,核心也是围绕三张表转:loan_order(借款订单)、loan_repay_plan(还款计划)、loan_repay_record(每期还款记录)。这个记账逻辑就是后台的开发骨架。

后台控制器里“审核通过”的功能,典型实现是同步初始化还款计划。以等额本息为例,审核通过后要按借款期数生成每期应还日期和应还金额。生成 SQL 的样子如下:

-- 审核通过时同步插入还款计划,term=3 表示生成 3 期 INSERT INTO loan_repay_plan (order_id, due_no, due_date, amount_principal, amount_interest, status) SELECT o.order_id, t.n, DATE_ADD(o.create_time, INTERVAL t.n MONTH), ROUND(o.amount / o.term, 2), ROUND(o.amount * o.annual_rate / 12, 2), 0 FROM loan_order o JOIN ( SELECT 1 AS n UNION SELECT 2 UNION SELECT 3 ) t WHERE o.order_id = 'demo2024001';

这段 SQL 的关键点在于:日期生成用的是 DATE_ADD 按月递增,而不是直接加 30 天——如果按月加 30 天,跨月时还款日会漂移,这一点后面坑章里专门展开。演示项目里为了简化,常把每月应还本金写死成 amount / term,再用“当期利息=剩余本金×月利率”计算,这也是常见写法,只是要注意每月剩余本金递减,否则总利息会对不上。正式改造时应当把本金余额表算出来,再逐期生成应还利息。

2.3 公共层代码先摸清:自动加载、公共函数、配置入口

公共层通常放在 include/ 或 core/ 里,里面的函数大致包括:链接数据库、格式化金额、生成订单号、发送站内信提醒。其中生成订单号这个函数最值得先读一遍。早期源码常见写法是 date('YmdHis') . rand(1000, 9999),演示环境并发低问题不大;可一旦作为作品集项目,现场同学同时点申请,订单号就可能重复,出现“两个人拿到同一个订单号”的尴尬。我会把订单号生成改成更稳妥的方式,比如前缀加日期加用户编号加随机数:

function build_order_no($userId) { // 前缀 LOAN,后面跟年月日时分秒和用户编号 return 'LOAN' . date('YmdHis') . str_pad($userId, 5, '0', STR_PAD_LEFT) . mt_rand(100, 999); }

这样生成的订单号既保留了可读性,也大大降低同秒撞号概率。做完这步,再回过来看 admin/index.php 的登录校验逻辑,基本上后台权限结构就全清楚了。登录处一般会校验 session 里是否存在管理员 ID,如果不存在就跳转到 login.php,这套逻辑后续换成自己的权限表也很方便。

3. PHP 借贷源码本地部署:三十分钟跑起一套能演示的模拟环境

把代码拆完不等于能跑。真正想把这套 PHP 借贷源码跑起来,环境组合、SQL 导入、入口路由三个环节一个都不能少。下面这个流程我在本地模拟环境验证过,零基础照着敲也能出页面。

3.1 环境组合选型:PHP 版本、MySQL 版本、PHP 扩展

先交代一个经验:老的 PHP 借贷源码,很多写于 PHP 5 时代,直接丢进 PHP 8 环境很容易报 deprecated。我第一次部署时遇到过两个典型报错:一是 mysql_* 函数不存在,二是构造函数名与类名相同的写法被移除。所以部署前先做一次版本体检:

php -v php -m | grep -E "mysqli|pdo_mysql|gd|openssl|curl|mbstring|fileinfo"

体检结果至少要包含 mysqli 或 pdo_mysql、gd、openssl、curl。gd 用于生成登录验证码,openssl 用于密码哈希和回调签名验证,curl 用于对接第三方通知。如果缺任何一个扩展,到 PHP 配置里打开对应扩展再重启服务即可。Windows 上常见做法是编辑 php.ini 去掉 extension=gd 前的分号;Linux 上则是用系统包管理器安装 php-gd、php-curl。版本选择上,如果源码里明文出现 mysql_connect 这类老函数,直接换 PHP 5.6 或加一层兼容扩展,不要硬着头皮在 PHP 8 里到处改。

3.2 数据库初始化:导入 SQL 并确认字符集与存储引擎

数据库初始化以 sql/db.sql 为蓝本。我一般会先建一个独立的库,再执行导入:

mysql -u root -p # 在 MySQL 会话内执行 CREATE DATABASE IF NOT EXISTS loan_demo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; exit; mysql -u root -p loan_demo < sql/db.sql

这里为什么用 utf8mb4 而不是 utf8?因为 utf8mb4 能存 emoji 和生僻字,也是 MySQL 8 的默认字符集,索引长度问题比老 utf8 更可控。如果源码里已经是 utf8,想在老库上原地升级,可以执行三条 ALTER:

ALTER DATABASE loan_demo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE loan_order CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE loan_repay_plan CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

注意先改库再改表,表结构转换时索引列的长度如果超过 767 字节,在 MySQL 5.7 下要留意;MySQL 8 默认使用动态行格式,一般不受这个限制。导入完成后,用 SHOW TABLES 确认核心表都存在,再打开 config/database.php 检查连接串参数名是否和库名一致。

3.3 入口文件与伪静态:路径统一走 index.php 分发

用户端和后台共用一套路由,配置上最好让所有访问都经过 index.php 分发。以 Nginx 为例,站点配置可写成:

server { listen 8080; server_name localhost; root /path/to/loan; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }

第一次跑通访问 http://localhost:8080/index.php 能有页面,再考虑去掉 index.php 做 URL 美化。如果用的是 Apache,在包根目录放一个 .htaccess 也行,核心两行是 RewriteCond %{REQUEST_FILENAME} !-f 和 RewriteRule ^(.*)$ index.php/$1 [L]。这个步骤的作用是让路由统一,避免后台的控制器方法被直接通过物理路径访问,同时也让静态资源不受路由影响。

3.4 配置文件实操:BASE_URL、cookie 域、session 前缀

打开 config/config.php,重点调整以下参数:

// 站点地址:本地联调就写 http://localhost:8080/ define('BASE_URL', 'http://localhost:8080/'); // Cookie 所属域:留空则使用当前请求域名 define('COOKIE_DOMAIN', ''); // Session 名称:前后台最好分开 define('SESSION_NAME', 'LOANADMIN');

BASE_URL 主要影响用户端跳转链接和静态资源加载路径。很多人改完代码发现页面样式丢失,八成是 BASE_URL 末尾的斜杠被漏掉了。COOKIE_DOMAIN 留空最安全,手写 www 前缀会导致用 IP 或 localhost 访问时登录态写不进去;SESSION_NAME 分开设置,可以避免用户端和后台在同一域名下互相覆盖 session。改完这些参数,刷新页面确认能进后台登录框,部署就算完成一大半。

4. 五个避坑记录:时区漂移、上传失败、严格模式报错、验证码红叉、掉登录态

这套源码我在模拟项目X上前后部署过两遍,下面五条是这两遍里踩过或旁观过的典型坑,每条都按“现象→原因→解决”整理,照方抓药即可。

4.1 时区未设置,还款日判断整整错一天

现象:还款日当天后台查询就显示“已逾期”,但订单明明还没到 24 点。

原因:PHP 默认时区是 UTC,date('Ymd') 在 UTC 零点一秒后就进入下一天,而数据库中的 create_time 是按北京时间写入的,两边一对比,日期就错位了。

解决:在 config 文件顶部统一设置时区。

if (!ini_get('date.timezone')) { date_default_timezone_set('Asia/Shanghai'); }

如果是在 php.ini 里设置,记得改完重启 PHP 进程。修复后还要复核定时任务里的“每日逾期扫描”,确认它读取的也是同一套时区,否则前端正常、后台扫描还是错判。

4.2 后台放款凭证上传失败:目录权限和路径双层问题

现象:后台上传身份证、放款凭证时提示“写入失败”,但报错信息里没有给出明确路径。

原因:两个点叠加。一是 uploads 目录没有写权限,二是配置里的上传路径用了相对路径,在 Nginx 的 fastcgi 模式下解析到了错误位置。

解决:先确认目录权限,再改用绝对路径定义。

mkdir -p /path/to/loan/uploads chmod -R 755 /path/to/loan/uploads

同时检查配置常量是否用了绝对路径:

define('UPLOAD_PATH', '/path/to/loan/uploads/'); define('UPLOAD_URL', BASE_URL . 'uploads/');

很多演示项目为了图省事直接用相对路径,换站点目录就失效。用绝对路径等于给上传功能留一条后悔药,迁移目录时只要改一个常量。

4.3 MySQL 严格模式报错:字段没有默认值

现象:插入借款订单时 SQL 报错,错误信息包含 doesn't have a default value。

原因:MySQL 5.7 以上默认开启 STRICT_TRANS_TABLES,对没有默认值且未传入值的非空字段直接报错,而旧源码习惯了宽松模式下的隐式处理。

解决:建议不要为了兼容去改全局 sql_mode,而是把表结构里确实需要空值的字段补上默认值。

ALTER TABLE loan_order MODIFY remark VARCHAR(255) NOT NULL DEFAULT '', MODIFY audit_user VARCHAR(32) NOT NULL DEFAULT '';

这比改 sql_mode 更干净,也符合“显式优于隐式”的编码习惯。改完后重新执行原插入逻辑,报错即可消失。如果数据库里已经灌了测试数据,执行前先看一眼字段分布,避免把已有业务含义的字段默认值写错。

4.4 验证码不显示或显示为红叉

现象:后台登录页验证码位置空白,浏览器直接提示验证码图片格式错误,或者页面顶部多出一行乱码。

原因:一般是 GD 扩展没启用,或验证码脚本前面有 BOM 字符和空行输出。PHP 脚本在调用 header() 之前如果有 UTF-8 BOM 输出,相当于提前发过内容,后面的 image/png 头就失效了。

解决:先确认 gd 扩展已开启,再用无 BOM 的编辑器重保存验证码文件,并在脚本开头做两件事。

ob_clean(); header('Content-Type: image/png; charset=utf-8');

ob_clean 的作用是清空输出缓冲,把杂质挡在图片头之前。如果文件本身是其他编码,就直接转成 UTF-8 无 BOM 保存,避免中文乱码。

4.5 换域名或端口访问就掉登录态

现象:用 http://localhost:8080 登录后台,一旦改成 http://127.0.0.1:8080 访问,后台自动跳回登录页。

原因:session 和 cookie 都绑定了 cookie_domain。源码配置里如果写过 COOKIE_DOMAIN 或 session.cookie_domain,把它限定为 localhost 后,跨 IP 访问就匹配不上。

解决:把两个地方的域名都改成空或注释掉。

// config.php define('COOKIE_DOMAIN', '');
; php.ini 或 .user.ini session.cookie_domain = session.cookie_secure = 0

改完清一下浏览器 Cookie 再登录。如果只在内网单机使用,cookie_domain 留空通常最保险;如果确实需要一级域名多个子站共享登录态,才能去设置 cookie_domain 为一级域名。

5. 植入一张还款试算表验证核心逻辑:把演示项目改造成教学模拟系统

最后一步是验证核心逻辑是否可信。我常用的技巧是一个 1 万元、12 期、年化 12% 的最小数据集,分别计算等额本息结果,再与源码生成的 loan_repay_plan 对比。这套方法不依赖测试框架,也能在答辩前证明“我的项目数据是对的”。

等额本息的每月应还金额公式是固定的:月供 = 本金 × 月利率 × (1 + 月利率) 的期数次方,再除以 (1 + 月利率) 的期数次方减一。把 10000 元、年化 12%、12 期代入,月利率 0.01,计算脚本如下:

<?php function calc_monthly($principal, $annualRate, $term) { $monthlyRate = $annualRate / 12; if ($monthlyRate < 0.0000001) { // 零利率场景:本金平摊到每期 return $principal / $term; } $factor = pow(1 + $monthlyRate, $term); return $principal * $monthlyRate * $factor / ($factor - 1); } $principal = 10000.0; $annualRate = 0.12; $term = 12; $monthly = calc_monthly($principal, $annualRate, $term); $rounded = round($monthly, 2); printf("月供:%.2f\n", $rounded); printf("总还款:%.2f\n", $rounded * $term); printf("总利息:%.2f\n", $rounded * $term - $principal);

跑完输出的月供约 888.49,总还款约 10661.85,总利息约 661.85。我一般会把这个结果和 loan_repay_plan 里每一期的 amount_principal + amount_interest 做差值对比,差值绝对值大于 0.01 就需要检查源码里的利率小数位数和 round 时机。因为演示项目的 SQL 往往先把每期应还金额 round 到两位,再在最后一期用总还款减前 n-1 期来兜住尾差,避免最后一期出现四舍五入误差。这个小技巧放到真实项目里同样适用:凡是分期业务,尾差都要在最后一期吸收掉。

后续我会把最小数据集扩展到 3 期和 24 期一组,快速回归源码的边界校验,比如期数为一期或利率为零时会不会除零。从那以后,只要是“借贷、还款、分期”类源码包,我都强制先走一遍最小数据集验证流程,再决定要不要往下改业务。先在本地把数字验证清楚,再谈页面和界面,能少掉很多玄学问题。希望这些拆解对你有用,希望帮到你。

本文还有配套的精品资源,点击获取

相关新闻

实战推演:用 esp32-iphone-agent 的思路,给自己 iPhone 做个“自动化开关“,可行吗

实战推演:用 esp32-iphone-agent 的思路,给自己 iPhone 做个“自动化开关“,可行吗

实战推演&#xff1a;用 esp32-iphone-agent 的思路&#xff0c;给自己 iPhone 做个"自动化开关"&#xff0c;可行吗 【免费下载链接】esp32-iphone-agent Let an AI model use a real iPhone with a $7 ESP32: AirPlay eyes, USB HID hands, any OpenAI-compatible …

2026/10/20 8:14:30 阅读更多 →
Agent上线就崩?从状态管理到可观测性,拆解工程化落地的五大核心难题

Agent上线就崩?从状态管理到可观测性,拆解工程化落地的五大核心难题

1. 演示与上线之间的鸿沟到底在哪做 Agent 项目的人大概都经历过这种场面&#xff1a;内部演示的时候&#xff0c;Agent 流畅地理解需求、调用工具、多步推理、最后给出一个漂亮的答案&#xff0c;会议室里一片掌声。然后老板说“下周上线吧”&#xff0c;结果一上线&#xff0…

2026/10/20 8:13:30 阅读更多 →
查IP地址不用装App:一条命令分清内网IP与公网IP

查IP地址不用装App:一条命令分清内网IP与公网IP

查IP地址这件事&#xff0c;听着特简单&#xff0c;真做起来却有一堆让人上火的小状况。我经常被朋友问“你帮我看看我电脑IP是多少”&#xff0c;结果他说的是宽带师傅问他“你家庭网关的公网IP变没变”&#xff0c;俩人鸡同鸭讲。实际上&#xff0c;“查IP地址”至少分成三个…

2026/10/20 8:13:30 阅读更多 →

最新新闻

Qt时间轴趋势图源码实战:QCustomPlot高性能实现与避坑指南

Qt时间轴趋势图源码实战:QCustomPlot高性能实现与避坑指南

简介&#xff1a;这是一份面向Qt/C图形界面开发者的时间轴趋势图实现源码&#xff0c;适合正在学习QGraphicsView图形框架、需要为监控系统或数据分析场景搭建动态图表的初中级开发者参考。压缩包共5个文件&#xff0c;约11KB&#xff0c;包含pro工程文件、cpp源码、qrc资源文件…

2026/10/20 8:57:32 阅读更多 →
AST对象合并:JS反混淆中被低估的结构重建关键技术

AST对象合并:JS反混淆中被低估的结构重建关键技术

1. 为什么“对象合并”是AST反混淆里最常被低估的突破口在做JS反混淆项目时&#xff0c;我见过太多人一上来就盯着字符串解密、控制流扁平化、变量名还原这些“显眼包”问题猛攻。结果花三天调通了一个Deobfuscator插件&#xff0c;跑完发现代码还是满屏的_0x1a2b3c[push](_0x4…

2026/10/20 8:57:32 阅读更多 →
从卫星通信频段干扰到低噪声放大器自激振荡:一次射频前端故障的完整排查与整改

从卫星通信频段干扰到低噪声放大器自激振荡:一次射频前端故障的完整排查与整改

有一类投诉&#xff0c;会在邮件到达的那一刻就让整个研发团队安静下来。半个月前&#xff0c;我接到某卫星地球站客户的电话&#xff0c;说他们在 1400-1427MHz 频段的下行接收链路里&#xff0c;持续出现一个时有时无的强干扰信号&#xff0c;严重时整条链路信噪比掉到没法用…

2026/10/20 8:57:32 阅读更多 →
OpenClaw+飞书:AI跨境电商选品系统的落地实践

OpenClaw+飞书:AI跨境电商选品系统的落地实践

做跨境电商选品这行当&#xff0c;最折磨人的不是找不到数据&#xff0c;而是数据散落在各种地方&#xff1a;某平台后台的销量趋势、运营工具里的关键词热度、供应链那边给的供货价&#xff0c;还有三方数据服务商每周发来的一堆行业报告。以前我们团队的做法是运营手动汇总Ex…

2026/10/20 8:57:32 阅读更多 →
EasyExcel泛型解析失败的根源与四大解决方案

EasyExcel泛型解析失败的根源与四大解决方案

1. 问题不是EasyExcel的缺陷&#xff0c;而是对泛型擦除本质的误判刚接手一个财务数据导入模块时&#xff0c;我看到同事写的报错日志就皱了眉头&#xff1a;“com.alibaba.excel.exception.ExcelAnalysisException: java.lang.ClassCastException: java.util.LinkedHashMap ca…

2026/10/20 8:57:32 阅读更多 →
工商业储能液冷户外柜:从选型到运维的全流程解析

工商业储能液冷户外柜:从选型到运维的全流程解析

工商业储能的圈子这两年变化非常快&#xff0c;AESB系列液冷储能户外柜刚出来的时候&#xff0c;很多人还觉得它只是把集装箱方案缩小了而已。真正在项目里用过一遍才发现&#xff0c;产品形态的变化背后是整个系统设计逻辑的转变。这篇就围绕AESB系列液冷户外柜在工商业储能配…

2026/10/20 8:56:30 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →