当前位置:首页>PPT模板>如何将公司PPT模板变成一劳永逸的Skill?

如何将公司PPT模板变成一劳永逸的Skill?

  • 2026-06-01 18:28:29
如何将公司PPT模板变成一劳永逸的Skill?

# 如何将公司PPT模板变成一劳永逸的Skill?

作者:小莴AI实测 | 发布于 2026年6月

阅读提示: 全文约 3500 字,包含完整代码实现。预计阅读时间 8 分钟。文中提供了可直接使用的脚本,复制到本地即可运行。

痛点场景

每次做汇报都要从零开始套格式?

周报、月报、季度总结,每次改个标题就要折腾半小时?项目汇报改了数据忘了改日期,封面标题和内容对不上号?

这件事本身就值得被自动化。

核心思路很简单:把 PPT 模板分析一遍,识别每个占位符的含义,然后写一个 OpenClaw Skill,让你用自然语言驱动填充过程。

以后只要说"帮我生成一份Q2工作总结",AI 自动把内容塞进正确的位置。

一、整体架构

这套方案的分工非常清晰:

OpenClaw Skill 负责理解你的意图——你说什么,它就调什么。

python-pptx 脚本负责操作 PPT——打开模板、找到占位符、写入内容、输出文件。

Skill 只是个"翻译层",把自然语言转成脚本调用。

整个流程分四步走:

分析模板 → 写填充脚本 → 打包成 Skill → 测试触发

二、分析 PPT 模板

先用 python-pptx 把你现有的模板"读"一遍,搞清楚每个占位符在哪里、叫什么、是什么类型。

安装依赖:

pip install python-pptx -i https://mirrors.aliyun.com/pypi/simple/

分析脚本:

from pptx import Presentation

from pptx.enum.shapes import MSO_SHAPE_TYPE

def analyze_template(pptx_path):

prs = Presentation(pptx_path)

for slide_idx, slide in enumerate(prs.slides):

print(f"\n=== 第 {slide_idx + 1} 页 ===")

# 读取幻灯片布局名称

layout_name = slide.slide_layout.name if slide.slide_layout else "无布局"

print(f"布局: {layout_name}")

for shape in slide.shapes:

if not shape.has_text_frame and not shape.has_table:

continue

# 获取占位符信息

if shape.is_placeholder:

ph = shape.placeholder_format

print(f"  占位符 idx={ph.idx} | 类型={ph.type} | 名称={shape.name}")

else:

print(f"  形状 | 类型={shape.shape_type} | 名称={shape.name}")

# 读取已有文本内容作为参考

if shape.has_text_frame:

text = shape.text_frame.text[:50].replace('\n', ' ')

if text.strip():

print(f"    文本预览: {text}")

# 表格信息

if shape.has_table:

table = shape.table

print(f"    表格: {len(table.rows)}行 x {len(table.columns)}列")

运行后会看到类似这样的输出:

=== 第 1 页 ===

布局: 封面

占位符 idx=0 | 类型=TITLE (1) | 名称=标题占位符

文本预览: 公司名称

占位符 idx=1 | 类型=BODY (2) | 名称=副标题占位符

文本预览: 文档标题

=== 第 2 页 ===

布局: 目录

占位符 idx=0 | 类型=TITLE (1) | 名称=标题占位符

文本预览: 目录

占位符 idx=1 | 类型=BODY (2) | 名称=内容占位符

文本预览: 1. 第一章

把这些信息记录下来,下一步要用。

三、写模板填充脚本

拿到模板结构之后,写核心脚本。思路是:

- 加载模板(不修改原文件,复制一份再改)

- 按索引或名称找到对应占位符

- 写入内容

- 保存

填充器类:

from pptx import Presentation

from pptx.util import Inches, Pt

from copy import deepcopy

import os

class PPTTemplateFiller:

"""PPT模板填充器"""

def __init__(self, template_path):

self.template_path = template_path

self.prs = None

def load(self):

"""加载模板文件"""

self.prs = Presentation(self.template_path)

return self

def set_text(self, slide_idx, placeholder_idx, text, font_size=None):

"""在指定页的占位符中写入文本"""

slide = self.prs.slides[slide_idx]

for shape in slide.shapes:

if shape.is_placeholder:

ph = shape.placeholder_format

if ph.idx == placeholder_idx:

tf = shape.text_frame

tf.paragraphs[0].text = text

if font_size:

for run in tf.paragraphs[0].runs:

run.font.size = Pt(font_size)

return True

return False

def set_text_by_name(self, slide_idx, placeholder_name, text):

"""通过名称查找占位符并写入"""

slide = self.prs.slides[slide_idx]

for shape in slide.shapes:

if shape.is_placeholder and shape.name == placeholder_name:

tf = shape.text_frame

tf.paragraphs[0].text = text

return True

return False

def fill_table(self, slide_idx, placeholder_name, data):

"""

填充表格

data: 二维列表,如 [["姓名", "部门"], ["张三", "技术部"]]

"""

slide = self.prs.slides[slide_idx]

for shape in slide.shapes:

if shape.has_table and shape.name == placeholder_name:

table = shape.table

for row_idx, row_data in enumerate(data):

if row_idx >= len(table.rows):

break

for col_idx, cell_text in enumerate(row_data):

if col_idx >= len(table.columns):

break

cell = table.cell(row_idx, col_idx)

cell.text = str(cell_text)

return True

return False

def add_slide_from_layout(self, layout_idx):

"""从指定布局添加新幻灯片"""

layout = self.prs.slide_layouts[layout_idx]

slide = self.prs.slides.add_slide(layout)

return slide

def save(self, output_path):

"""保存到新文件"""

self.prs.save(output_path)

return output_path

# 快速使用示例

def generate_report(template_path, output_path, data):

"""生成报告的快捷函数"""

filler = PPTTemplateFiller(template_path).load()

# 填充封面

filler.set_text_by_name(0, "标题占位符", data["title"])

filler.set_text_by_name(0, "副标题占位符", data["subtitle"])

# 填充正文页

filler.set_text_by_name(1, "内容占位符", data["content"])

# 填充表格

filler.fill_table(2, "表格占位符", data["table"])

return filler.save(output_path)

这个脚本已经能独立工作了。但要让它真正"一劳永逸",还需要把它封装成 Skill,让 AI 理解什么情况下该调它、怎么调。

四、封装成 OpenClaw Skill

OpenClaw Skill 的核心是一个 SKILL.md 文件,放在目录里就行。

目录结构:

ppt-report-skill/

├── SKILL.md          # 技能说明书

├── scripts/

│   ├── __init__.py

│   └── fill_ppt.py   # 核心填充逻辑

└── assets/

└── template.pptx  # 模板文件

SKILL.md 怎么写

name: ppt-report-generator

description: "根据公司模板生成PPT报告,支持封面、目录、正文、表格自动填充"

# PPT 报告生成

根据公司标准模板自动生成PPT报告。适用场景:周报、月报、季度总结、项目汇报。

模板结构(公司模板)

页码
内容类型
占位符名称
第1页
封面
标题占位符、副标题占位符
第2页
目录
目录标题、内容占位符
第3页
正文
内容占位符
第4页
表格页
表格占位符

使用方式

用户说"帮我生成XX报告"时:

1. 询问报告基本信息(标题、副标题、部门/姓名、日期)

2. 询问报告核心内容要点

3. 组装数据后调用脚本

调用方式

cd ~/.openclaw/skills/ppt-report-skill/scripts

python fill_ppt.py \

--template /path/to/template.pptx \

--output /path/to/output.pptx \

--title "报告标题" \

--subtitle "部门 · 姓名" \

--content "正文内容(可用换行分隔多段)" \

--table "表头1,表头2;数据1,数据2;数据3,数据4"

数据格式约定

- table 参数使用分号分隔行,逗号分隔列,第一行为表头

- content 参数使用 | 分隔段落

- 模板文件建议放在 ~/.openclaw/skills/ppt-report-skill/assets/

输出路径

默认输出到当前工作目录,文件名格式:{标题}_{姓名}_{日期}.pptx

注意事项

- 不修改原始模板文件

- 如果模板有更新,重新运行分析脚本确认占位符结构

- 表格最多支持10行,超出部分自动截断

核心脚本 fill_ppt.py 完整版

#!/usr/bin/env python3

"""

PPT模板填充脚本

用法: python fill_ppt.py --template 模板.pptx --output 输出.pptx --title 标题 ...

"""

import argparse

import os

import sys

from datetime import datetime

from pptx import Presentation

from pptx.util import Pt

def parse_table(table_str):

"""解析表格参数字符串"""

rows = table_str.split(";")

return [row.split(",") for row in rows if row.strip()]

def parse_content(content_str):

"""解析内容参数字符串"""

paragraphs = content_str.split("|")

return [p.strip() for p in paragraphs if p.strip()]

def fill_ppt(template_path, output_path, title, subtitle, content, table, date_str):

"""执行填充"""

if not os.path.exists(template_path):

print(f"错误:模板文件不存在 {template_path}", file=sys.stderr)

sys.exit(1)

prs = Presentation(template_path)

# 第1页:封面

slide_0 = prs.slides[0]

for shape in slide_0.shapes:

if shape.is_placeholder:

ph = shape.placeholder_format

if ph.idx == 0:  # 标题

shape.text_frame.paragraphs[0].text = title

elif ph.idx == 1:  # 副标题/日期

shape.text_frame.paragraphs[0].text = f"{subtitle} · {date_str}"

# 第3页:正文

slide_2 = prs.slides[2]

for shape in slide_2.shapes:

if shape.is_placeholder and shape.name == "内容占位符":

tf = shape.text_frame

paragraphs = parse_content(content)

for i, para_text in enumerate(paragraphs):

if i < len(tf.paragraphs):

tf.paragraphs[i].text = para_text

# 第4页:表格

if table:

slide_3 = prs.slides[3]

for shape in slide_3.shapes:

if shape.has_table:

table_data = parse_table(table)

ppt_table = shape.table

for row_idx, row_data in enumerate(table_data):

if row_idx >= len(ppt_table.rows):

break

for col_idx, cell_text in enumerate(row_data):

if col_idx >= len(ppt_table.columns):

break

cell = ppt_table.cell(row_idx, col_idx)

cell.text = cell_text

prs.save(output_path)

return output_path

def main():

parser = argparse.ArgumentParser(description="PPT模板填充工具")

parser.add_argument("--template", required=True, help="模板文件路径")

parser.add_argument("--output", required=True, help="输出文件路径")

parser.add_argument("--title", required=True, help="报告标题")

parser.add_argument("--subtitle", default="", help="副标题(部门+姓名)")

parser.add_argument("--content", default="", help="正文内容,用|分隔段落")

parser.add_argument("--table", default="", help="表格数据,用;分隔行,用,分隔列")

parser.add_argument("--date", default="", help="日期,默认为今天")

args = parser.parse_args()

date_str = args.date or datetime.now().strftime("%Y年%m月%d日")

result = fill_ppt(

args.template,

args.output,

args.title,

args.subtitle,

args.content,

args.table,

date_str

)

print(f"生成成功: {result}")

if __name__ == "__main__":

main()

五、安装 Skill

把目录放到正确位置,然后重启 OpenClaw 载入:

# 放到共享 skills 目录(所有 agent 都能用)

cp -r ppt-report-skill ~/.openclaw/skills/

# 或者放到工作区目录(仅当前工作区可用)

cp -r ppt-report-skill ~/.openclaw/workspace/skills/

# 重启让 OpenClaw 加载新 Skill

openclaw gateway restart

验证加载成功:

openclaw skills list | grep ppt

看到 ppt-report-generator 就说明加载成功。

六、验证触发

现在你可以直接说:

OpenClaw 会识别出这个意图,调用 Skill 里的脚本,自动生成一份套好格式的 PPT。

效果对比

原来
现在
打开模板文件
说一句话
手动复制粘贴格式
AI 自动识别占位符
改标题忘改日期
日期自动填充
每份报告耗时 20 分钟
生成仅需 30 秒

写在最后

这套方案的价值不是"省了10分钟套格式",而是把格式这件事彻底从你的工作流里剔除

模板更新了,就重新分析一遍占位符;新的报告类型需要新模板,就新建一个 Skill。AI 的工作就是执行,你的工作就是说话。

核心就三行配置文件和两个脚本,改改占位符映射关系,能适配市面上绝大多数公司模板。

往期推荐:

- 《做这个号之前,我实测了50款AI工具》

- 《Trae 测评:国产AI编程工具能不能打?》

END

如果觉得有用,欢迎转发给需要做PPT的朋友。关注「小莴AI实测」,解锁更多AI工具实测与效率提升方法。


📍 本文为「小莴AI实测」原创#PPT自动化 #OpenClaw #AI办公 #效率工具 #python-pptx #Skill开发

最新文章

随机文章

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