乐于分享
好东西不私藏

PDF 转 Markdown 教程:pdf-inspector 本地解析,自动判断是否需要 OCR

PDF 转 Markdown 教程:pdf-inspector 本地解析,自动判断是否需要 OCR
PDF WORKFLOW · LOCAL2026.08

所有 PDF 都先跑 OCR?

先判断文字层

再转换 Markdown

PDF INSPECTION · OCR ROUTING · PYTHON

PDF-INSPECTOR

LOCALMIT

11 PARTS + PRACTICE

PART 01

认识工具

先检测再解析

PART 04

Python 上手

uv 安装与运行

PART 06

OCR 分流

混合文档处理

手里有一批 PDF,想整理成 Markdown,再交给知识库、RAG 或 AI 助手处理,最先卡住的往往是文字能不能干净地取出来。模型选择反而要排在后面。

同样是 PDF,有的可以直接复制文字,有的整页都是扫描图片,还有一些只有部分页面需要 OCR。如果不做判断,全部送去 OCR,速度慢、成本高,原本清楚的文字也可能被识别错。

开源项目 pdf-inspector 解决的正是这一步:先在本地检查 PDF 类型,再提取已有文本,并尽量还原标题、列表、表格和阅读顺序。需要 OCR 的页面会被单独标出来。

这篇文章用 Python 跑一遍完整流程。做完后,你会得到一份 Markdown,并知道哪些页面还需要交给 OCR。

01

PART

pdf-inspector 是什么

OVERVIEW · TOOL POSITIONING

pdf-inspector 是 Firecrawl 开源的 PDF 分类和文本提取工具,核心用 Rust 编写,采用 MIT 许可证。

它不依赖大模型,也不会把文件上传到外部服务。解析工作在本地完成,适合报告、论文、合同、说明书、财务文档等包含原生文字的 PDF。

它主要做两件事:

1

判断 PDF 是文本型、扫描型、图片型还是混合型。

2

从文本型页面提取内容,并转换成结构化 Markdown。

官方同时提供 Python、Node.js、Rust、命令行和浏览器 WebAssembly 接口。个人处理文档,用 Python 最容易上手;要接入网页或 Node 服务,也有现成的 npm 包。

02

PART

为什么先判断,再决定是否 OCR

ROUTING · COST CONTROL

文本型

直接本地提取

混合型

按页调用 OCR

扫描型

进入 OCR 流程

很多 PDF 工具一看到文件,就直接把每一页渲染成图片,再执行 OCR。这条路线通用,但会带来几个实际问题。

一份 100 页的报告,可能只有封面和两张附件是扫描件。若整份文件都执行 OCR,等待时间和服务费用会明显增加。文字型页面原本包含准确字符,经过 OCR 后,数字、小数点、代码和专有名词反而可能出错。

pdf-inspector 会检查页面内容流中的文字与图片操作符,并返回:

PDF 类型;

判断置信度;

总页数;

需要 OCR 的页码;

字体编码是否异常;

文档是否包含表格或多栏布局。

这样就能把文档分成两条路线:有可靠文本层的页面直接本地提取,扫描页或乱码页再送入 OCR。

对批量文档系统来说,这个“分流器”通常比再换一个更贵的 OCR 服务更有用。

03

PART

它能把哪些内容转成 Markdown

OUTPUT · DOCUMENT STRUCTURE

普通的 PDF 文本提取,经常只返回一长串文字。双栏论文左右交叉,表格变成散乱数字,标题也和正文混在一起。

pdf-inspector 会读取文字位置、字体大小和样式,再尝试恢复文档结构,包括:

根据字号识别 H1 到 H4 标题;

识别项目符号、数字列表和字母列表;

保留粗体、斜体、链接与代码块;

处理多栏页面的阅读顺序;

识别带边框和按文字对齐形成的表格;

过滤页码,合并断行单词;

发现字体编码损坏时,提示改用 OCR。

这里的关键词是“尝试恢复”。PDF 记录的是页面上每个字符放在哪里,并没有统一保存“这是二级标题”“这是表格第三列”之类的语义。版式越特殊,后续人工检查越重要。

04

PART

用 uv 安装 Python 版本

TUTORIAL · PYTHON SETUP

先进入自己的 Python 项目目录。如果还没有项目,可以执行:

powershell

uv init pdf-reader

cd pdf-reader

安装 pdf-inspector

powershell

uv add pdf-inspector

官方提供了 Windows x64、macOS 和常见 Linux 平台的预编译包。大多数电脑不需要单独配置 Rust。若使用未提供预编译包的平台,安装过程才可能要求本机具备 Rust 工具链。

在项目根目录放入一份 document.pdf,然后新建 inspect_pdf.py

python

from pathlib import Path

import pdf_inspector

pdf_path = Path("document.pdf")

result = pdf_inspector.process_pdf(str(pdf_path))

print(f"PDF 类型:{result.pdf_type}")

print(f"总页数:{result.page_count}")

print(f"置信度:{result.confidence:.2f}")

print(f"需要 OCR 的页码:{result.pages_needing_ocr}")

print(f"存在编码问题:{result.has_encoding_issues}")

if result.markdown:

    output_path = pdf_path.with_suffix(".md")

    output_path.write_text(result.markdown, encoding="utf-8")

    print(f"Markdown 已保存到:{output_path}")

else:

    print("没有提取到可用文字,请对相应页面执行 OCR。")

运行脚本:

powershell

uv run python inspect_pdf.py

如果原文件是文本型 PDF,同目录下会生成 document.md。打开后先检查标题层级、表格和多栏内容,不要直接把结果批量写入正式知识库。

05

PART

只检测 PDF,不提取全文

DETECTION · FAST CHECK

有些系统只需要判断“是否应该调用 OCR”,没必要先转换整份文档。此时可以使用 detect_pdf

python

import pdf_inspector

result = pdf_inspector.detect_pdf("document.pdf")

print(result.pdf_type)

print(result.confidence)

print(result.pages_needing_ocr)

官方文档中,detect_pdf 返回的 pages_needing_ocr 使用从 1 开始的页码,更适合直接给人查看。部分更底层的分类接口使用从 0 开始的页码,接入代码时要确认清楚,避免把 OCR 发到相邻页面。

06

PART

混合 PDF 怎么处理

WORKFLOW · HYBRID PDF

生产场景里,更常见的是混合 PDF:正文可以提取,附件却是扫描图。

可以先执行完整解析,保存已经提取到的 Markdown,再把 pages_needing_ocr 中的页面交给 OCR。OCR 返回文字后,根据页码插回原文档。

一个简单的路由判断可以这样写:

python

import pdf_inspector

result = pdf_inspector.process_pdf("document.pdf")

if result.pdf_type == "text_based" and not result.has_encoding_issues:

    print("直接使用本地提取结果")

elif result.pdf_type == "mixed":

    print(f"仅对这些页面执行 OCR:{result.pages_needing_ocr}")

else:

    print("这份文件更适合走 OCR 流程")

实际项目还应检查置信度、空文本、乱码和页面布局。不要只用一个 pdf_type 字段决定所有后续操作。

07

PART

命令行用户可以直接用 pdf2md

CLI · AUTOMATION

如果已经安装 Rust,也可以使用项目自带的命令行工具:

powershell

cargo install pdf-inspector

pdf2md document.pdf

只输出 Markdown:

powershell

pdf2md document.pdf --raw

处理指定页面:

powershell

pdf2md document.pdf --select-pages 1,3,5-10

只判断文档类型:

powershell

detect-pdf document.pdf --json

命令行方式适合脚本、自动化任务和服务器管道。Python 用户没有必要为了这几个命令额外安装 Rust,直接使用 Python 包即可。

08

PART

Node.js 和浏览器也能接入

INTEGRATION · NODE AND WASM

Node.js 项目可以安装官方 npm 包:

powershell

npm install @firecrawl/pdf-inspector

最小调用示例:

javascript

import { readFileSync } from "node:fs";

import { processPdf } from "@firecrawl/pdf-inspector";

const pdf = readFileSync("document.pdf");

const result = processPdf(pdf);

console.log(result.pdfType);

console.log(result.pagesNeedingOcr);

console.log(result.markdown);

这个包为 Windows x64、macOS ARM64 和常见 Linux 环境提供预编译二进制文件。浏览器项目则可以使用 @firecrawl/pdf-inspector-wasm,让 PDF 留在用户设备中解析,不必先上传服务器。

09

PART

官方基准怎么看

BENCHMARK · READ CAREFULLY

0.875

综合得分

0.470s

200 份文档

M4 Pro

项目方测试

项目 README 公布了一组基于 200 份 PDF 的本地解析测试,关闭了 OCR 和模型解析。在该测试中,pdf-inspector 的综合得分为 0.875,200 份文档的完整运行时间为 0.470 秒。

这组数据由项目方在 Apple M4 Pro 上测得,测试结果和复现分支已经公开。它能说明工具在该数据集上的速度与结构恢复能力,但不能直接推导到所有中文合同、复杂财报或超大 PDF。

更稳妥的做法是拿自己的文档抽样测试。至少准备以下几类文件:

普通文字报告;

双栏论文;

带合并单元格的财务表格;

扫描合同;

文字页和扫描附件混合的 PDF。

记录提取时间、乱码页数、表格可用率和需要人工修正的段落,再决定是否接入正式流程。

10

PART

哪些情况不要只靠它

LIMITS · OCR REQUIRED

能力边界

扫描页、手写内容、图表信息和损坏字体仍要交给 OCR 或视觉模型处理。

pdf-inspector 没有内置 OCR。整页扫描、手写内容、低清照片和没有文字层的图片型 PDF,仍然需要 OCR。

下面几种文档也要谨慎:

数学公式很多的论文;

图表、流程图承担主要信息的报告;

字体映射损坏或加密受限的文件;

版面极不规则的宣传册;

需要像素级还原的发票和票据。

它输出 Markdown,不等于理解图像。图表中的趋势、扫描页上的印章、图片里的文字,都需要视觉模型或 OCR 补充。

///

LAST

适合放进哪些工作流

PRACTICE · FINAL ADVICE

如果你正在搭建以下系统,pdf-inspector 很值得先做一轮测试:

把论文和报告批量整理成 Markdown;

为 RAG 知识库清洗 PDF;

给 AI 助手准备可检索的本地资料;

从合同和财务文档中保留表格结构;

在上传 OCR 服务前筛掉不需要识别的页面;

在浏览器内完成隐私敏感文档的初步解析。

个人用户最简单的方案是:先用 process_pdf 生成 Markdown,检查 pages_needing_ocr,只有确实缺少文字的页面才调用 OCR。

这条流程没有把所有 PDF 问题一次解决,但它把昂贵、缓慢的 OCR 留给真正需要的页面。面对一批来源复杂的 PDF,这一步往往能省下最多时间。

我是dennis

觉得这篇教程有用,可以点赞、在看或转发给正在处理 PDF 的朋友。

THANKS FOR READING

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