乐于分享
好东西不私藏

PDF解析,一场与「魔鬼格式」的持久战——最全工具评测与选型指南

PDF解析,一场与「魔鬼格式」的持久战——最全工具评测与选型指南

当你把一份精美排版的PDF拖进解析器,却得到了满屏乱码、散落的文字块和无序的表格——恭喜你,你遇见了PDF——这个互联网时代最流行的「只读不写」格式,也是无数程序员和AI从业者的噩梦源头。


一、为什么我们需要认真对待PDF解析?

RAG(检索增强生成)智能文档处理席卷各行各业的今天,PDF解析已经从一个"能用就行"的辅助工具,变成了决定AI应用成败的核心环节。

无论是企业知识库构建、合同关键信息提取,还是学术论文的语料清洗——PDF解析的质量,直接决定了下游任务的最终效果。

用一句话概括:垃圾进,垃圾出(Garbage In, Garbage Out)。 如果你的RAG系统检索效果不佳,90%的问题出在文档解析这一关。


二、PDF解析为什么这么难?

要理解PDF解析的困难,首先要明白一个灵魂真相:

PDF不是文档格式,而是「印刷指令集」。

它不关心你的内容是段落还是表格,不关心阅读顺序是什么,它只关心一件事——每个字符应该印在页面的哪个位置。

难点一:文字编码的黑洞 

PDF中的文字编码是一场噩梦:

问题
描述
ToUnicode 映射缺失
PDF规范不强制包含正确的字符映射表,提取出的文字可能是乱码
自定义/PUA编码
部分PDF将字符映射到私用区(U+E000~F8FF),渲染正确但提取后毫无意义
CIDFont(CJK字体)
中、日、韩文的字体映射极其复杂,缺少CMap时直接摆烂
Identity-H编码
字符编码直接等于字形ID,完全依赖ToUnicode映射,而这种映射常常缺失

开发者调侃:「你看到的『你好』,在PDF内部可能是一个编号为8848的图样。」

难点二:阅读顺序 vs 渲染顺序 

PDF的Content Stream按照渲染顺序存储指令——先画背景图、再画页眉、再画正文、再画脚注、再画侧边栏广告……

但人类阅读的顺序是从左到右、从上到下

这意味着解析器要把这些碎片重新拼回正确的阅读顺序——"拼图"的难度可想而知。

难点三:表格——最痛的痛点 

表格类型
解析难度
原因
有线框表格
⭐⭐
可以检测线条来切分单元格
无线框表格
⭐⭐⭐⭐⭐
没有线条,只能靠空格和坐标推测,极易出错
合并单元格
⭐⭐⭐⭐
跨行跨列的单元格破坏行列结构
跨页表格
⭐⭐⭐⭐
表格被PDF分页切断,需要跨页拼接

难点四:文字转曲(Text to Outlines)

部分PDF为了防篡改,将文字全部转换为矢量路径——在PDF眼里,这些文字和一张图中的一条曲线没有任何区别。

解决方案只有一条:上OCR。 但这意味着速度降低、精度下降。

难点五:生成工具的"千人千面"

Chrome打印的PDF、Word导出的PDF、LaTeX编译的PDF、iText生成的PDF……每个工具底层结构天差地别。解析器需要为每种生成方式准备不同的"对付策略"。


三、当前主流PDF解析工具全景图 

经过2024~2025年的行业洗牌,PDF解析工具已经分化为两大阵营:

传统解析工具(规则引擎型)

工具
本质
开源
PyMuPDF (fitz)
C语言底层解析引擎,Python封装
pdfminer.six
纯Python布局解析
pdfplumber
基于pdfminer,专注调试可视化
Camelot
表格提取专用
Tabula-py
基于Java的表格提取
Apache PDFBox
Java生态的头号选手

AI智能解析工具(模型驱动型)

工具
本质
开源
LlamaParse
多模态大模型(云端API)
❌(API服务)
Marker
深度学习模型本地推理
Unstructured.io
多模态预处理框架
✅(开源版)
Azure Document Intelligence
微软企业级云服务
Google Document AI
谷歌企业级云服务
Nougat
Meta出品,科学论文专用


四、深度评测:各工具优缺点详细拆解 

1️⃣ PyMuPDF (fitz) —— 速度之王 

一句话:最快,但最"傻"。

pip install PyMuPDFpip install pymupdf4llm# LLM场景专用封装

使用示例:

import pymupdf4llm# 一行代码,PDF秒转Markdownmd_text = pymupdf4llm.to_markdown(”document.pdf”)# 也支持按页分割chunks = pymupdf4llm.to_markdown(”document.pdf”, page_chunks=True)for chunk in chunks: print(f”--- Page {chunk['metadata']['page']} ---”) print(chunk['text'])

✅ 优点:

  • 速度极快(纯C底层),海量文档批量处理首选
  • 轻量级安装,零外部依赖
  • 能处理严重损坏的PDF
  • pymupdf4llm封装后对LLM场景友好度大幅提升

❌ 缺点:

  • 无语义理解能力,输出是孤立的文本块
  • 多栏排版、复杂表格的解析质量堪忧
  • AGPL许可证有商用风险

适用场景: 大批量简单文档、语料粗清洗、对速度要求极高的流水线


2️⃣ pdfplumber —— 调试利器 

一句话:给你最大的控制权,也给你最大的工作量。

使用示例:

import pdfplumberimport pandas as pdwith pdfplumber.open(”report.pdf”) as pdf: page = pdf.pages[0] table = page.extract_table()# 转DataFramedf = pd.DataFrame(table[1:], columns=table[0])# 可视化调试——看着图调参数im = page.to_image()im.draw_rects(page.find_tables())im.save(”debug.png”)

✅ 优点:

  • 纯Python实现,无外部依赖
  • 提供字符级坐标 (x0, y0, x1, y1, fontname, size) 精度极高
  • 可视化调试功能是一大亮点
  • 可精准定位表格位置

❌ 缺点:

  • 需要手动编写大量后处理逻辑
  • 无内置的阅读顺序恢复能力
  • 巨型文件速度偏慢

适用场景: 需要精细控制提取逻辑、需要对PDF结构进行"考古"分析的场景


3️⃣ Camelot —— 表格提取之王 

一句话:装它很痛苦,用起来真香。

 # 安装警告:需要 Ghostscript + OpenCVpip install camelot-py[cv]

使用示例:

import camelot# Lattice模式:有边框表格(准确率极高)tables = camelot.read_pdf(”report.pdf”, pages=”1-2”, flavor=”lattice”)# Stream模式:无边框表格(基于空格推测)tables = camelot.read_pdf(”report.pdf”, pages=”1”, flavor=”stream”)# 直接用DataFramedf = tables[0].dfprint(f”解析准确率:{tables[0].parsing_report['accuracy']:.2f}%”)# 一键导出多种格式tables.export(”output.csv”, f=”csv”)tables.export(”output.xlsx”, f=”excel”)
✅ 优点:
  • Lattice(有线框)模式准确率极高
  • Stream模式可以处理无边框表格
  • 准确度评分,自动筛选低质量结果
  • 返回DataFrame,数据分析无缝衔接

❌ 缺点:

  • 安装过程极其痛苦(Ghostscript + OpenCV),Windows用户噩梦
  • 跨页表格效果骤降
  • 极度复杂的嵌套表格撑不住

适用场景: 财务报表、年报、科研数据表的批量结构化提取


4️⃣ Tabula-py —— 表格提取的"省心"选择

一句话:Java有点重,用起来挺稳。

import tabula# 一行代码,读取全部表格dfs = tabula.read_pdf(”report.pdf”, pages=”all”, multiple_tables=True)# 一键转CSVtabula.convert_into(”report.pdf”, ”output.csv”,  output_format=”csv”, pages=”all”)

✅ 优点:

  • API极其简洁,学习成本低
  • 提供GUI桌面工具(tabula-java),支持手动框选表格区域
  • 处理标准有线框表格非常稳健

❌ 缺点:

  • 强依赖JRE(Java运行时环境)
  • Stream(无边框)模式远不如Camelot
  • Java进程启动开销大,大批量处理性能堪忧

适用场景: 少量标准表格快速提取、非技术人员也能上手的GUI操作


5️⃣ LlamaParse —— 复杂版面解析的天花板 🏆

一句话:只要钱到位,什么版面都能搞定。

pip install llama-parse

使用示例:

from llama_parse import LlamaParseparser = LlamaParse( result_type=”markdown”,# 直接输出Markdown verbose=True, language=”zh”,# 中文支持)# 同步解析documents = parser.load_data(”annual_report.pdf”)# 或异步解析(推荐大文件)import asyncioasync def parse(): return await parser.aload_data(”annual_report.pdf”)documents = asyncio.run(parse())# 转换为完整Markdownfull_md = ”\n\n”.join([doc.text for doc in documents])with open(”output.md”, ”w”) as f: f.write(full_md)

✅ 优点:

  • 版面还原度业界最强:利用多模态视觉大模型理解图表和嵌套表格
  • 零配置:提供API Key即可使用,无需维护本地AI环境
  • 与LlamaIndex生态无缝集成
  • 输出规范Markdown,RAG场景体验极好

❌ 缺点:

  • 按页收费,海量文档成本不菲(有免费额度)
  • 数据必须上传云端,涉密文件无法使用
  • 延迟较大,不适合实时解析
  • 依赖网络,离线无法使用

适用场景: 商业财报、复杂海报、多栏杂志等高难度版面,预算充足且数据可上云


6️⃣ Marker —— 最强本地开源方案 

一句话:如果你有GPU,它就是开源的LlamaParse。

pip install marker-pdf

使用示例:

from marker.converters.pdf import PdfConverterfrom marker.models import create_model_dictconverter = PdfConverter( artifact_dict=create_model_dict(),)# PDF转Markdownrendered = converter(”document.pdf”)markdown_text = rendered.markdownwith open(”output.md”, ”w”) as f: f.write(markdown_text)

命令行用法更简单:

marker document.pdf output.md

✅ 优点:

  • 本地运行,数据零泄露,满足严格合规要求
  • 效果接近LlamaParse,支持数学公式、多栏论文、脚注
  • 配合Surya OCR模型可处理扫描件
  • 完全免费,无API计费

❌ 缺点:

  • 强烈依赖NVIDIA GPU(CPU模式可用但极慢)
  • 显存占用较高(8GB+起步)
  • 安装配置有一定门槛(CUDA、PyTorch等)
  • 极度复杂的商业表格偶尔翻车

适用场景: 对数据安全要求高的场景、学术论文批量处理、有GPU资源的团队


7️⃣ Unstructured.io —— 企业级多格式预处理框架 

一句话:格式支持最广,但学习曲线也最陡。

pip install ”unstructured[pdf]

使用示例:

from unstructured.partition.pdf import partition_pdffrom unstructured.chunking.title import chunk_by_title# 高精度模式解析elements = partition_pdf( filename=”document.pdf”, strategy=”hi_res”,# 高精度模式 infer_table_structure=True,# 提取表格结构 include_page_breaks=True, languages=[”eng”, ”zh”],# 多语言)# 表格转HTMLfor el in elements: if el.category == ”Table”: print(el.metadata.text_as_html)# LLM友好的分块处理chunks = chunk_by_title( elements, max_characters=4000, new_after_n_chars=3800, combine_text_under_n_chars=2000,)

✅ 优点:

  • 格式支持最广:PDF、Word、PPT、HTML、图片全覆盖
  • Pipeline高度可定制,自由组合多种后端引擎
  • 内置多种Chunking策略,RAG场景极其适用

❌ 缺点:

  • 环境部署极其复杂:Detectron2、Tesseract等依赖易报错
  • 仅需简单提取时显得"杀鸡用牛刀"
  • 开源版与API版功能有割裂

适用场景: 多格式混合的企文档处理中心、需要精细控制分块逻辑的RAG流水线


五、多维度横向对比 

综合能力对比

维度
PyMuPDF
pdfplumber
Camelot
LlamaParse
Marker
Unstructured
解析速度
⚡⚡⚡⚡⚡
⚡⚡⚡
⚡⚡
⚡⚡
⚡⚡
安装难度
😊极简
😊极简
😰痛苦
😊极简
🤔中等
😰痛苦
表格精度
⭐⭐
⭐⭐⭐
⭐⭐⭐⭐
⭐⭐⭐⭐⭐
⭐⭐⭐⭐
⭐⭐⭐⭐
版面还原
⭐⭐
⭐⭐⭐
⭐⭐⭐
⭐⭐⭐⭐⭐
⭐⭐⭐⭐
⭐⭐⭐⭐
中文支持
✅良好
✅良好
⚠️一般
✅优秀
✅良好
✅良好
数据安全
✅本地
✅本地
✅本地
❌云端
✅本地
✅本地
费用
免费
免费
免费
按页收费
免费
免费/API收费
学习成本
极低

速度 vs 精度权衡曲线

精度  ↑  |                        🏆 LlamaParse  |                      💪 Marker  |                 🏭 Unstructured.io  |          📊 Camelot / Tabula  |     🔍 pdfplumber  |  ⚡ PyMuPDF  └————————————————————————→ 速度

结论:速度和精度不可兼得。 选型就是在这对矛盾中找到最适合你场景的平衡点。

按场景速查

你的需求
首选工具
备选
海量简单文档快速清洗
PyMuPDF
pdfplumber
复杂表格提取
Camelot
Tabula / pdfplumber
复杂版面(多栏/海报)
LlamaParse
Marker
学术论文/数学公式
Marker
Nougat
数据安全/涉密文档
Marker
PyMuPDF
企业级多格式处理
Unstructured.io
Azure Doc Intelligence
纯文本内容提取
pdfplumber
PyMuPDF
RAG知识库构建
LlamaParse / Marker
Unstructured

六、实战选型建议:我该怎么选?

场景一:构建企业知识库(RAG)

graph LR A[PDF文档] --> B{文档类型} B -->|简单文本| C[PyMuPDF → Markdown] B -->|复杂排版| D[LlamaParse/Marker → Markdown] B -->|扫描件| E[OCR + Marker] C --> F[向量化 → 存入向量库] D --> F E --> F

推荐组合拳:

  • 简单文档 → pymupdf4llm(快速、免费、够用)
  • 复杂文档 → Marker(本地、免费、高质量)或 LlamaParse(预算充足时)

场景二:金融财报表格提取

# 推荐:Camelot 为主 + pdfplumber 兜底tables = camelot.read_pdf(”财报.pdf”, flavor=”lattice”)if tables[0].parsing_report['accuracy'] < 80:# 准确率不够,换pdfplumber手动调 with pdfplumber.open(”财报.pdf”) as pdf: table = pdf.pages[0].extract_table()

场景三:实时文档处理系统

不推荐任何AI模型。 选择 PyMuPDF 或 pdfplumber,追求毫秒级响应。


七、总结 

PDF解析没有"万能钥匙"。每种工具都有自己的生态位:

如果你想
选择
PyMuPDF
LlamaParse(云端)/ Marker(本地)
提取表格
Camelot
精细控制
pdfplumber
企业级多格式
Unstructured.io

最后送大家一句话:

「决定RAG系统上限的不是大模型,而是文档解析。」

希望这篇文章能帮你少走弯路。如果你有PDF解析方面的经验或吐槽,欢迎在评论区留言!

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-26 15:02:53 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/804210.html
  2. 运行时间 : 0.124309s [ 吞吐率:8.04req/s ] 内存消耗:4,697.48kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=87ac2370dc357864840e806bdf0e7326
  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 ( 3.94 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.30 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.000662s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000817s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000330s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000267s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000480s ]
  6. SELECT * FROM `set` [ RunTime:0.000191s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000562s ]
  8. SELECT * FROM `article` WHERE `id` = 804210 LIMIT 1 [ RunTime:0.000597s ]
  9. UPDATE `article` SET `lasttime` = 1782457373 WHERE `id` = 804210 [ RunTime:0.019909s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000407s ]
  11. SELECT * FROM `article` WHERE `id` < 804210 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000589s ]
  12. SELECT * FROM `article` WHERE `id` > 804210 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000387s ]
  13. SELECT * FROM `article` WHERE `id` < 804210 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002249s ]
  14. SELECT * FROM `article` WHERE `id` < 804210 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003316s ]
  15. SELECT * FROM `article` WHERE `id` < 804210 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000703s ]
0.125969s