当前位置:首页>PPT>OOXML:为什么 AI 做不好 PPT 的真正原因

OOXML:为什么 AI 做不好 PPT 的真正原因

  • 2026-05-16 21:42:53
OOXML:为什么 AI 做不好 PPT 的真正原因
讨论 AI PPT 工具时,大多数分析关注的是模型能力——"GPT-4 够不够聪明"、"Claude 的视觉理解够不够好"。但真正的瓶颈不在模型这一端,而在输出格式这一端。每个 AI PPT 工具最终都要生成一个 .pptx 文件,而 .pptx 背后是 OOXML(Office Open XML)——一个 6,546 页的 ISO 标准,27 个 XML 命名空间,三级主题继承链。没有任何 AI 模型被训练来理解这个格式的全部复杂性,也没有任何生成库完整实现了这个规范。
.pptx 文件不是一个简单的文档,它是一个 ZIP 压缩包,里面是几十个 XML 文件和关系声明,遵循 OOXML(ISO/IEC 29500)标准。这个标准有 6,546 页,包含 27 个命名空间和 89 个 schema 模块。AI PPT 工具生成的每个"幻灯片"都必须翻译成合法的 OOXML XML——而这个翻译过程,就是所有模板不匹配、字体丢失、布局错位问题的根源。

一个 .pptx 文件的核心是四层继承链:Theme → Slide Master → Slide Layout → Slide。颜色、字体、效果从 Theme 层层传递下来。AI 生成工具如果跳过了任何一层,输出的幻灯片在 PowerPoint 中的渲染就会出问题。


你现有的模型(可能是错的)

大多数人认为 .pptx 是一种"文档格式",类似于 .txt 或 .pdf——一个文件,一种内容。

实际上,.pptx 是一个结构化的 ZIP 压缩包,里面包含几十个 XML 文件,它们之间通过 relationship 文件互相引用。一张幻灯片不是一个独立的实体——它依赖于 Slide Layout、Slide Master 和 Theme 三个上层结构。改动 Theme 里的颜色方案,所有幻灯片的颜色都会跟着变;但如果某张幻灯片绕过了继承链直接硬编码颜色值,它就脱离了 Theme 的控制。

这就是 AI PPT 工具的核心困境:AI 生成的内容通常是"硬编码"的,不参与继承链。


真实的机制

.pptx 的内部解剖

把任何一个 .pptx 文件的后缀名改成 .zip,解压缩,你会看到这样的目录结构:

[Content_Types].xml          ← 声明包内每种文件的 MIME 类型_rels/  .rels                      ← 包级关系(指向 presentation.xml)docProps/  core.xml                   ← 元数据:作者、标题、创建时间  app.xml                    ← 应用属性ppt/  presentation.xml           ← 主结构文件:幻灯片列表、尺寸  _rels/    presentation.xml.rels    ← 主结构的关系:引用所有 slide、master、theme  slides/    slide1.xml               ← 单张幻灯片的内容    _rels/      slide1.xml.rels        ← 这张幻灯片引用的图片、布局  slideLayouts/    slideLayout1.xml          ← 布局模板:定义占位符位置  slideMasters/    slideMaster1.xml          ← 母版:定义基础外观  theme/    theme1.xml                ← 主题:颜色方案、字体族、效果  media/    image1.png                ← 嵌入的图片/视频/音频

四层继承体系

OOXML 的幻灯片视觉表现由四层结构控制,每层继承上一层的属性:

Theme(主题) → 定义颜色方案(12 个语义色:dk1、dk2、lt1、lt2、accent1-6、hlink、folHlink)、字体族(主标题字体 + 正文字体,各有 Latin/East Asian/Complex Script 三套)、效果方案。

Slide Master(母版) → 继承 Theme,定义背景、默认文字样式、公共元素(Logo、页码位置)。一个 presentation 可以有多个 Slide Master。

Slide Layout(布局) → 继承 Slide Master,定义特定布局类型的占位符位置和大小。"标题页"、"标题+内容"、"两栏对比"都是不同的 Slide Layout。

Slide(幻灯片) → 继承 Slide Layout,填充实际内容。占位符里的文字、图片都在这一层。

关键问题:如果 AI 生成的幻灯片不通过 Slide Layout 的占位符放置内容,而是直接在 Slide 上创建独立的 shape,那么这些内容就脱离了继承链——改 Theme 不影响它们,换 Slide Master 不影响它们。它们变成了"孤儿元素"。

这正是 Copilot for PowerPoint 的模板问题的技术根源。 Copilot 通过 Office 插件 API 在 Slide 层面直接创建 shape,而不是通过 Slide Layout 的占位符。结果就是:浮动文本框、Logo 错位、品牌颜色不一致。

DrawingML:另一个复杂度维度

OOXML 中的所有图形元素(形状、文本框、图表、SmartArt)由 DrawingML 描述,这是一个独立于 SVG 的矢量图形语言。

DrawingML 的坐标系统使用 EMU(English Metric Unit),1 英寸 = 914,400 EMU。这意味着 AI 生成工具如果要精确控制元素位置,必须把所有尺寸换算成 EMU——一个毫无直觉可言的单位系统。

更麻烦的是,DrawingML 的文本渲染、图表数据、效果叠加各有自己的 XML 子树,嵌套深度可达 10+ 层。一个带阴影的圆角矩形文本框,仅 XML 就有 40-60 行。

Relationship 文件:隐性的胶水

OOXML 中每个部件(slide、image、layout、master)之间的引用不是直接的文件路径,而是通过 .rels 文件中的 relationship ID 间接引用。

<!-- slide1.xml.rels --><RelationshipId="rId1"Type=".../slideLayout"Target="../slideLayouts/slideLayout2.xml"/><RelationshipId="rId2"Type=".../image"Target="../media/image1.png"/>

Slide 里引用图片时用 rId2,不用文件名。如果 .rels 文件缺少这个 ID 声明,或 ID 和 XML 里的引用不匹配,PowerPoint 打开文件时会报错或丢失元素。

AI 生成工具必须同步维护 XML 内容和 .rels 文件的一致性。 这是一个容易出错的环节——程序化生成时,一个 ID 不匹配就能让整张幻灯片空白。


为什么 AI 在这里卡住了

python-pptx:事实上的瓶颈

大多数 AI PPT 工具在生成 PPTX 时依赖 python-pptx——一个 MIT 许可的 Python 库(GitHub 3,300+ stars,694 forks)。它是目前最广泛使用的 PPTX 程序化生成工具。

但 python-pptx 有严重的局限:

  • 不支持动画和转场
    ——生成的 PPTX 是完全静态的
  • 不支持 SmartArt 创建
    ——只能读取已有的 SmartArt
  • 图表类型有限
    ——仅支持柱状图、折线图、饼图等基础类型
  • 不支持视频/音频嵌入
  • 不支持 SVG 图片插入
    (2026 年 3 月仍有 issue)
  • 不支持 3D 效果、形态变化(Morph)等 PowerPoint 近年新增的功能
  • 443 个 open issues,88 个 open PR
    ——维护者是单人(Steve Canny),最近一次代码提交在约 2 年前(约 2024 年中)
  • 新功能通过赞助推动
    ——实质上是 pay-to-play
  • 存在已知 bug
    :如 Font.color 的 getter 方法会意外修改 XML(插入空的 <a:solidFill/>),Slide.background._element 返回错误节点等

python-pptx 作者自己也承认:"即使 python-pptx 做了这么多事,PowerPoint 文档格式极其丰富,仍有很多功能不支持。"

python-pptx 的状态在过去两年进一步恶化。 社区仍在提交 issue(每周有新的)和 PR,但几乎没有被合并。88 个 open PR 意味着大量社区贡献被搁置。对于依赖 python-pptx 的 AI PPT 工具来说,这是一个供应链风险——核心依赖的维护者只有一个人,且近乎停止开发。

AI 模型的输出能力上限 = python-pptx 的实现上限。 如果生成库不支持某个 OOXML 特性,AI 模型再聪明也无法在最终文件里表达它。

6,546 页规范 vs. 库的实现覆盖率

OOXML 规范(ISO/IEC 29500)全文 6,546 页——Google 在 ISO 标准化投票期间指出,ODF(OpenDocument Format)只用了 867 页就实现了类似目标。

python-pptx 实现的大约是规范的 10-15%。这意味着 AI 工具可以利用的 OOXML 特性只是冰山一角。更复杂的布局、更精细的动画、更丰富的图表——都在"支持范围之外"。

Web 原生工具的转换损失

Gamma 等 Web 原生工具选择了另一条路线:在浏览器里渲染内容,导出时再转换为 OOXML。这条路避开了直接和 OOXML 搏斗的痛苦,但引入了新的问题:

  • CSS 布局 → OOXML 坐标:CSS 的 flexbox/grid 是声明式布局("这些元素平均分配空间"),OOXML 是坐标式布局("这个文本框在 x=914400, y=1828800, w=7315200, h=457200 EMU 的位置")。两者之间没有无损映射。

  • Web 字体 → 系统字体:Web 可以加载任意 Google Fonts / Adobe Fonts,PPTX 只能使用嵌入字体或系统字体。中文字体尤其成问题——一个中文字体文件动辄 10+ MB,嵌入会让 PPTX 文件膨胀。

  • CSS 颜色 → OOXML 颜色方案:CSS 用 hex/rgb/hsl,OOXML 用语义色(accent1-6)。导出时如果把 CSS 颜色硬编码为 hex,就脱离了 OOXML 的颜色方案继承——之后换主题不会影响这些颜色。


这对工程师意味着什么

如果你正在构建或评估 AI PPT 工具,三个关键认知:

1. PPTX 导出质量是天花板,不是地板。 不管 AI 在 Web 端生成的内容多好看,最终用户拿到的 PPTX 文件质量取决于 OOXML 生成层。评估工具时,直接在 PowerPoint 里打开导出文件,检查模板继承、字体渲染、颜色方案是否完整。

2. "看起来对"和"结构上对"是两回事。 一个 AI 生成的 PPTX 文件可能在 PowerPoint 里打开看起来没问题,但如果所有元素都是硬编码的独立 shape(不参与继承链),后续修改会极其痛苦——换主题不生效,换布局不生效,每个元素都要单独调。

3. python-pptx 是当前的实际瓶颈。 如果你的 AI PPT 管线依赖 python-pptx,你的输出能力就被锁在它的实现范围内。替代方案包括:直接操作 OOXML XML(灵活但开发量大)、使用 Microsoft Graph API(需要 365 订阅)、或考虑 Apache POI(Java,实现更完整但 Python 生态外)。

4. 微软自己的解法:Headless Office。 2025 年底,微软在 Copilot 的 Edit with Copilot 功能中透露了一个关键架构:AI 不再直接生成 OOXML XML,而是先产出中间表示(intermediate representation),再通过无头版本的真实 PowerPoint 应用程序转换成最终文件。官方说法:"uses real Office applications — not approximations — to generate content."

这是目前唯一能从根本上绕过 OOXML 直接生成问题的方案——因为它把格式合规性交给了 PowerPoint 本身。但这条路只有微软能走:Headless Office 不是公开可用的 API,第三方无法调用。这意味着 OOXML 生成的结构性劣势,对第三方工具来说是永久性的——除非微软把 Headless Office 开放为平台能力。


补充背景

OOXML 的历史本身就是一段争议。2006 年微软将其提交给 Ecma 国际标准化,2008 年通过 ISO 快速通道投票成为 ISO/IEC 29500——但这个过程引发了激烈争议。IBM 威胁退出标准组织,批评者认为在 ODF 已经是 ISO 标准的情况下不需要第二个 XML 文档格式,挪威标准化机构甚至因为 OOXML 争议而"内爆"。

OOXML 有两个一致性级别:Strict 和 Transitional。讽刺的是,即使是微软自己的 Office 2013+ 也默认使用 Transitional 模式以保持向后兼容——这意味着"标准"的 Strict 模式在实际中几乎没有人用。

The Document Foundation(LibreOffice 的背后组织)称 OOXML 文件为"标签和元数据的迷宫"。这个评价在 AI 生成的语境下尤为贴切——让语言模型在迷宫里精确导航,目前做不到。


延伸阅读

  • ISO/IEC 29500 (OOXML) — ISO 官方标准页面
  • python-pptx documentation — 当前最广泛使用的 PPTX 生成库
  • Open XML SDK — 微软官方的 .NET OOXML 操作库
  • Office Open XML — Wikipedia — OOXML 历史和争议的全面概述
  • Copilot for PowerPoint:$30/月买了什么 — 本系列第一篇,OOXML 问题在 Copilot 中的具体表现
  • Gamma:$8/月的 AI 幻灯片 — 本系列第三篇,Web 原生工具如何绕开(但没有解决)OOXML 问题

最新文章

随机文章

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