当前位置:首页>电子书资讯>电子书一键变有声书:这个本地开源项目,连声音都能克隆

电子书一键变有声书:这个本地开源项目,连声音都能克隆

  • 2026-08-24 02:03:51
电子书一键变有声书:这个本地开源项目,连声音都能克隆

这是一份面向 Windows / Linux / macOS 用户的 ebook2audiobook 本地部署与使用笔记。它把电子书、文档、短文本在自己电脑上转成有声书,支持 GPU 加速、声音克隆、局域网 API 和 M4B 章节输出。


引子:想"听"书,你其实卡在这几步

先对号入座一下:

  • 攒了几百本 EPUB、PDF,眼睛累了想"听",结果发现冷门书根本没有有声版,热门书整本买又不值?
  • 试过云朗读 App,但一想"我的书要上传到别人服务器",隐私那关就过不去?
  • 手机阅读 App 自带的"朗读"音色机械、不能后台、还不支持章节跳转,听两分钟就烦了?
  • 自己找过 TTS 工具,配置劝退,长文本跑一半崩了还得从头来?

如果你中了两条以上,那 ebook2audiobook 值得你花十分钟。它不是一个"能念字的网页",而是把电子书 → 分句 → TTS 合成 → 章节音频 → 有声书文件这条链路,完整地跑在你自己机器上的开源项目。

下面先把优点讲透,再上详细教程。

一、这套方案是什么

ebook2audiobook 是一个把电子书、文档或短文本转换为有声书的本地工具。它的核心流程是:读取电子书内容,按章节或片段拆分文本,调用 TTS 引擎生成语音,再把句子音频合成为章节音频和最终有声书文件。

适合的使用场景:

  • 把 EPUB、MOBI、TXT、PDF、DOCX、HTML 等内容转换为有声书。
  • 用网页界面手动上传、选择语言、选择声音并生成音频。
  • 在局域网内通过 API 提交转换任务。
  • 使用 GPU 加速较长文本的语音生成。
  • 对长书按章节或指定章节范围分批转换。

二、为什么选 ebook2audiobook:它到底好在哪

2.1 先说痛点:听书这条路上,传统方案有多尴尬

你的需求
传统方式的尴尬
听冷门 / 老书
有声书平台根本没有,或整本购买不灵活、不划算
不想上传内容
云朗读 App 要把书传到第三方服务器,隐私没保障还要订阅费
听感要好
手机"朗读"音色机械、不能后台、不支持 M4B 章节跳转
自己折腾 TTS
配置复杂、不会批处理、长文本容易崩、失败要重来

ebook2audiobook 的定位,正好补齐这一整片空白:在本地把书变成可章节跳转、可后台播放、还能定制声音的有声书,且内容不出本机。

2.2 6 大优点详解

① 隐私不出本机——最核心的卖点电子书和声音素材都在你自己的机器上处理,不必上传到任何第三方服务。对隐私敏感、或有不愿外传的文档的人来说,这一点比什么都重要。

② GPU 加速——长文本不再等到天荒地老可使用 CUDA、ROCm、MPS、XPU 等硬件后端。长文本转换速度明显优于纯 CPU;有 NVIDIA 显卡的话,一本几十万字的书也能在可接受时间内跑完。

③ 有声书级输出——M4B 才是"听得舒服"的格式支持输出 M4B、MP3、WAV、FLAC、M4A、OGG。其中 M4B 自带章节和元数据,对 Audible 类播放器、iOS 图书、各种听书 App 都更友好,进度、章节一目了然。

④ 断点续传 + 缓存——失败不用从零开始支持断点和缓存,中途失败后通常不必从头重跑。对动辄几小时的转换任务来说,这是"敢不敢跑整本"的关键保障。

⑤ 网页 + 局域网 API 双模式——既能点也能批既有适合小白的网页界面(上传、选语言、选声音、生成),也有局域网 API,可供 NAS、自动化脚本或其他程序调用,适合批量处理和服务器常驻。

⑥ 一切可控、可迁移、可清理依赖、模型、缓存、输出都可以约束在项目目录中,便于整体迁移、备份和清理。不像某些工具把模型散落到系统各处,重装就抓瞎。

2.3 它还能做什么(能力清单)

光说优点不够,直接看硬指标:

  • 输入格式极广:EPUB、MOBI、AZW3、PDF、TXT、RTF、DOC、DOCX、HTML、ODT、甚至图片。
  • TTS 引擎可选:XTTSv2、Bark、Piper、VITS、Fairseq、Tortoise 等,不同引擎在音色、速度、语言上各有侧重。
  • 声音克隆:可上传参考音频,生成接近指定声音的朗读——想让"自己的声音"念书给孩子听,技术上完全可行。
  • 多语言朗读:语言能力取决于所选 TTS 引擎和模型(中文 zho、英文 eng、日文 jpn 等)。
  • 章节 / 元数据 / 长音频拆分:成品天然适配有声书播放器。
  • SML 标记:可控制停顿、换声音等朗读细节,做"旁白 + 对白"分角色也不是梦。
  • 硬件后端:CUDA、ROCm、MPS、XPU,按系统和模型支持选用。

2.4 谁最适合用(对号入座)

✅ 通勤 / 家务想"听"书、眼睛累的人✅ 有大量 EPUB / PDF 想转听的人✅ 在意隐私、不想把书上传第三方的人✅ 有 NVIDIA GPU、想加速转换的人✅ 想做"专属声音"朗读(声音克隆)的人

❌ 完全没有命令行基础、且不愿折腾环境的人——它毕竟要装 Python、虚拟环境、FFmpeg、Calibre。❌ 想在低端电脑零成本跑"高质量"TTS 的人——CPU 能跑,但现代高质量模型偏慢,要有心理预期。

注意:本文采用的是非 Docker 的本地部署(Windows 手动安装),这样更灵活,也更便于控制模型与缓存目录。

三、部署前准备

建议准备:

  • Windows、Linux 或 macOS 系统。
  • Python 3.10 到 3.12。
  • Git。
  • FFmpeg,Windows 建议使用 full / shared 构建。
  • Calibre,用于多种电子书格式转换。
  • NVIDIA GPU 用户需要安装合适的显卡驱动,并安装匹配 CUDA 的 PyTorch。
  • OCR 场景可安装 Tesseract,用于图片型 PDF 或图片文字识别。
  • 预留足够磁盘空间,模型、缓存和中间音频可能占用较大空间。

注意:

  • 本笔记不使用 Docker 部署方式。
  • 不建议把项目直接装进系统 Python 环境。
  • 不建议把模型缓存散落到系统用户目录,最好统一放在项目相关目录或专门的数据目录。
  • 不要转换 DRM 保护或来源不合法的电子书。

四、推荐目录结构

下面是通用结构示例,可按自己的机器调整:

ebook2audiobook/# 项目根目录,所有服务从这里启动├─ .venv/# Python 虚拟环境,隔离项目依赖├─ models/# 模型缓存目录,保存 TTS 模型├─ tools/# 外部工具目录,例如 FFmpeg、Calibre├─ ebooks/# 可选:放待转换电子书├─ voices/# 可选:放声音克隆参考音频├─ audiobooks/# 默认输出目录,保存最终有声书├─ run/# 运行期临时文件、上传缓存、pid 文件└─ tmp/# 转换处理中间目录、Calibre 临时缓存

五、Windows 手动部署

以下示例使用 PowerShell。请把示例路径替换成自己的通用项目目录。

cd C:\AI# 进入准备放置项目的上级目录。git clone https://github.com/DrewThomasson/ebook2audiobook.git# 克隆官方仓库到本地。cd .\ebook2audiobook# 进入项目目录。python -m venv .venv# 创建 Python 虚拟环境,避免污染系统 Python。.\.venv\Scripts\Activate.ps1# 激活当前项目的虚拟环境。python -m pip install --upgrade pip# 升级 pip,减少安装依赖时的兼容问题。pip install -r requirements.txt# 安装项目依赖。

如果使用 NVIDIA GPU,通常还需要安装与显卡驱动匹配的 PyTorch CUDA 版本。下面只是示例,实际 CUDA 版本要按自己的环境选择。

pip uninstall -y torch torchaudio torchvision# 卸载可能装错的 CPU 版或不匹配版本。pip install torch torchaudio torchvision --index-url https://download.pytorch.org/whl/cuXXX# 安装示例 CUDA 版 PyTorch,请按官方说明替换 cuXXX。python -c ”import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0if torch.cuda.is_available() else 'CPU')”# 检查 PyTorch 是否能看到 CUDA。

六、FFmpeg 与 Calibre

FFmpeg 用于音频编码、合并和格式转换。Calibre 用于把 EPUB 以外的电子书格式转换成内部 EPUB。

Windows 上建议:

  • FFmpeg 使用 full / shared 构建,避免缺少动态库。
  • Calibre 可以使用安装版,也可以使用便携版。
  • 如果希望完全隔离,可以把 FFmpeg 和 Calibre 放到项目的 tools/ 目录。
  • 启动脚本中临时追加 PATH,比长期修改系统 PATH 更容易迁移。

示例:

$ffmpegBin = ”.\tools\ffmpeg\bin”# 假设 FFmpeg 解压在项目 tools 目录中。$calibreBin = ”.\tools\Calibre# 假设 Calibre 位于项目 tools 目录中。$env:PATH = ”$ffmpegBin;$calibreBin;$env:PATH# 仅给当前终端追加 PATH,不影响系统其它项目。ffmpeg -version# 检查 FFmpeg 是否可用。ebook-convert --version# 检查 Calibre 的 ebook-convert 是否可用。

七、启动网页界面

基础启动方式:

cd C:\AI\ebook2audiobook# 进入项目目录。.\.venv\Scripts\Activate.ps1# 激活项目虚拟环境。python app.py --script_mode native# 启动 Gradio 网页界面。

启动后浏览器访问:

http://127.0.0.1:7860/

局域网访问时,把 127.0.0.1 替换成运行电脑的局域网 IP:

http://<局域网IP>:7860/

八、启动本地 API

如果项目中已有 FastAPI 包装脚本,可用类似方式启动:

cd C:\AI\ebook2audiobook# 进入项目目录。.\.venv\Scripts\Activate.ps1# 激活项目虚拟环境。python local-api.py# 启动本地 API 服务。

API 文档地址:

http://127.0.0.1:7861/docs

局域网 API 地址:

http://<局域网IP>:7861/docs

九、API 调用示例

下面是 PowerShell 调用示例。所有路径和 IP 都是占位符,使用时请替换。

$api = ”http://<局域网IP>:7861/convert”# 设置 API 地址,局域网调用时替换成服务器电脑的 IP。$body = @{# 准备请求体,提交本地服务器上可访问的电子书路径。    ebook_path = ”D:\Books\example.epub”# 设置电子书文件路径,路径必须能被服务器电脑访问。    language = ”zho”# 设置电子书语言,zho 表示中文。    tts_engine = ”XTTS”# 设置 TTS 引擎。    device = ”cuda”# 设置使用 CUDA GPU;没有 GPU 时可改为 cpu。    output_format = ”m4b”# 设置输出格式,m4b 更适合有声书。    output_dir = ”D:\Audiobooks”# 设置输出目录,路径必须在服务器电脑上存在或可创建。    chapter_range = ”3-8”# 设置章节范围,留空或删除此行表示转换全部。} | ConvertTo-Json# 把 PowerShell 哈希表转换成 JSON 请求体。$job = Invoke-RestMethod -Method Post -Uri $api -ContentType ”application/json” -Body $body# 发送转换请求,并得到任务 ID。$job# 查看返回的任务信息。

查询任务状态:

$jobId = ””# 设置任务 ID,这里使用提交任务后返回的 job_id。Invoke-RestMethod -Uri ”http://<局域网IP>:7861/status/$jobId# 请求任务状态。

暂停、继续、停止:

Invoke-RestMethod -Method Post -Uri ”http://<局域网IP>:7861/pause/$jobId# 暂停正在运行的任务。Invoke-RestMethod -Method Post -Uri ”http://<局域网IP>:7861/resume/$jobId# 继续已暂停的任务。Invoke-RestMethod -Method Post -Uri ”http://<局域网IP>:7861/stop/$jobId# 停止任务。

下载结果:

Invoke-WebRequest -Uri ”http://<局域网IP>:7861/download/$jobId” -OutFile ”.\result.m4b”# 下载转换完成后的有声书文件。

十、常用参数说明

参数
作用
示例
language
输入文本或电子书语言
zho
engjpn
tts_engine
选择 TTS 引擎
XTTS
BARKPIPER
device
选择处理器
cuda
cpu
voice_path
声音克隆参考音频
D:\Voices\sample.wav
output_format
输出格式
m4b
mp3wav
output_dir
输出目录
D:\Audiobooks
chapter_range
指定章节范围
3-8
1,4,9

十一、章节范围

章节范围适合长书测试、分批转换或只转换指定章节。

支持写法:

  • 3-8
    :转换第 3 到第 8 个章节或片段。
  • 1,4,9
    :只转换第 1、第 4、第 9 个章节或片段。
  • 2-4,8,12-15
    :混合范围和单个章节。
  • 留空:转换全部。

注意:

  • 章节编号从 1 开始。
  • EPUB 的章节结构并没有完全统一标准,软件识别到的"章节"有时更接近"文本片段"。
  • 如果要精确选择,建议先开启章节预览,再确认每段内容。

十二、使用建议

  • EPUB 或 MOBI 通常比 PDF 更适合自动章节识别。
  • 图片型 PDF 需要 OCR,耗时会明显增加。
  • CPU 可以跑,但现代高质量 TTS 通常较慢;有条件建议使用 GPU。
  • 第一次使用某个模型时,需要下载模型,耗时和磁盘占用都较大。
  • 短文本测试时可以先只选一两个章节,确认声音、语速、语言都正确后再转换整本。
  • 输出 M4B 适合有声书播放器,MP3 适合通用播放器。
  • 长书建议分段或指定章节范围转换,降低失败后重跑成本。

十三、启停与清理

建议为本地部署准备成对脚本:

  • 启动.cmd
    :启动前先停止旧残留,再启动 Web 和 API。
  • 停止.cmd
    :停止 Web、API、TTS 子进程、FFmpeg 和转换残留进程。
  • cleanup-project-temp.cmd
    :停止后清理项目临时文件。

安全清理原则:

  • 可以清理:run/ 下的临时目录、上传缓存、日志和 pid 文件。
  • 可以清理:tmp/calibre-temptmp/calibre-cachetmp/hf-temp
  • 谨慎清理:tmp/proc-*,这里可能包含断点恢复、章节音频缓存和中间 EPUB。
  • 不建议清理:.venv/,否则需要重新安装依赖。
  • 不建议清理:models/,否则需要重新下载模型。
  • 不建议清理:tools/,否则 FFmpeg、Calibre 等工具会丢失。
  • 不建议清理:audiobooks/,这里通常是最终输出。

十四、常见问题

转换很慢

可能原因:

  • 当前使用 CPU,而不是 GPU。
  • 第一次加载模型,需要下载或初始化。
  • 文本过长,句子切分数量多。
  • 使用的 TTS 引擎本身较慢。
  • PDF 或图片输入触发 OCR。

处理建议:

  • 检查 device 是否选择 cuda
  • 检查 PyTorch 是否能识别 CUDA。
  • 先用章节范围转换少量章节测试。
  • 优先使用结构清楚的 EPUB。

convert2epub 失败

可能原因:

  • Calibre 没装好,或 ebook-convert 不在 PATH。
  • Calibre 临时目录权限异常。
  • 输入文件损坏。
  • 文件名、目录权限或临时目录被占用。
  • PDF / 图片内容需要 OCR,但 OCR 依赖不可用。

处理建议:

  • 优先用 EPUB 格式测试。
  • 确认 FFmpeg 和 Calibre 能在当前终端运行。
  • 停止服务后清理临时目录再重试。
  • 避免在权限复杂的系统临时目录中运行,尽量使用项目内临时目录。

网页打不开

处理建议:

  • 确认服务是否已经启动完成,首次启动可能需要几分钟。
  • 本机访问用 127.0.0.1
  • 局域网访问用运行电脑的真实局域网 IP。
  • 确认防火墙允许 7860 和 7861 端口。
  • 重启服务后刷新浏览器页面,必要时清理浏览器缓存或 Cookie。

十五、更新与维护

建议更新前先备份:

  • models/
  • voices/
  • audiobooks/
  • 自己写的启动、停止和清理脚本
  • 自己修改过的配置文件

通用更新流程:

cd C:\AI\ebook2audiobook# 进入项目目录。.\停止.cmd# 停止正在运行的服务。git pull# 拉取上游代码更新。.\.venv\Scripts\Activate.ps1# 激活虚拟环境。pip install -r requirements.txt# 更新依赖。.\启动.cmd# 重新启动服务。

十六、一句话结论

ebook2audiobook 的价值在于:它把"电子书变有声书"这件原本要么花钱买、要么冒险上传云端、要么自己硬啃 TTS 的事,变成了在自己电脑上可控、可加速、可定制声音、可断点续传的一条龙。部署时最重要的不是"装好",而是把虚拟环境、模型目录、工具目录和输出目录规划清楚,并养成"先小章节试跑、再整本转换"的习惯。


资料来源:

  • 官方仓库:
  • 官方 README 中的功能、格式、硬件要求和基本用法。
  • 本地部署经验:依赖隔离、GPU 加速、局域网 API、启动停止脚本、缓存目录清理。

你最想把哪类书转成有声书?是想解放双眼的通勤党,还是想用"自己的声音"给家人念书的玩家?欢迎在评论区聊聊你的场景。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-26 22:10:51 HTTP/2.0 GET : https://g.15386.cn/a/474481.html
  2. 运行时间 : 0.334715s [ 吞吐率:2.99req/s ] 内存消耗:4,451.92kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=6eea7ace37a3ad01e818063cb3de585a
  1. /yingpanguazai/ssd/ssd1/www/g.15386.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/g.15386.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/g.15386.cn/runtime/temp/bdb8e09c175b3f3cfe6785832a6c88dd.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001362s ] mysql:host=127.0.0.1;port=3306;dbname=g_15386;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001520s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001255s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001401s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001490s ]
  6. SELECT * FROM `set` [ RunTime:0.001028s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001530s ]
  8. SELECT * FROM `article` WHERE `id` = 474481 LIMIT 1 [ RunTime:0.002230s ]
  9. UPDATE `article` SET `lasttime` = 1787753451 WHERE `id` = 474481 [ RunTime:0.002271s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.002253s ]
  11. SELECT * FROM `article` WHERE `id` < 474481 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.006841s ]
  12. SELECT * FROM `article` WHERE `id` > 474481 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.009002s ]
  13. SELECT * FROM `article` WHERE `id` < 474481 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.071394s ]
  14. SELECT * FROM `article` WHERE `id` < 474481 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.030188s ]
  15. SELECT * FROM `article` WHERE `id` < 474481 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.020281s ]
0.338393s