当前位置:首页>Excel>格式转换与结构化(TXT → Excel 实战)

格式转换与结构化(TXT → Excel 实战)

  • 2026-08-12 04:02:02
格式转换与结构化(TXT → Excel 实战)

日志审计别再人肉搬砖:RPA+AI 让 GXP 合规从"天"缩到"分钟"

Windows 日志导出保姆级教学(事件查看器 + wevtutil + 影刀 RPA)

上篇我们讲了怎么把 Windows 日志导出成 TXT(就放在 C:\日志审计\审计报告_缓存\系统日志.txt)。
但 TXT 是"给人看的",Excel 和 AI 要的是"表"。今天这篇只干一件事:把那坨 TXT 变成"一行一事件、一列一字段"的 Excel——这正是六步框架里的第二步"格式转换与结构化"。
全文都是能直接抄的代码和正则,踩过的坑也都标出来了。建议配合上篇一起看。

公众号标题建议(填在标题栏,不在正文):

日志别再人肉填表:正则 + Python + 影刀,TXT 一键变 Excel


一、为什么必须结构化?不能直接丢给 AI 吗?

很多人第一反应是:TXT 直接丢给 AI 不就行了?

能,但不划算、不可控、不可复现

    所以正确姿势是:先结构化成 Excel(确定性、可复现),再把 Excel 喂给 AI 做研判(需要认知判断的部分)。RPA 干确定的活,AI 干判断的活——这套分工从第一篇就定了。


    二、我们要解析出哪些字段?

    拿一条真实的系统日志为例:

    Event[0]: Log Name: System Source: Service Control Manager Date: 2025-07-17T10:30:00.000 Event ID: 7036 Task: N/A Level: Information Opcode: N/A Keyword: Classic User: N/A User Name: N/A Computer: PC-NAME Description:The Workstation service entered the running state.

    审计里真正用得上的字段,这张表一次说清:

    Excel 就按这 7 列建表头,每条事件占一行。

    💡 我们聚焦最常用、审计价值最高的 7 个字段;Keyword、Task 等辅助字段对风险判定帮助有限,暂不单列(需要时可按同样的 字段名: 值 正则补列,不影响下游)。


    三、核心武器:正则表达式

    结构化本质就是"从固定格式的文本里抠字段"。Windows 事件日志的格式非常规律,正则是最省事的工具

    1. 单字段提取

    逐字段的正则(每条都验证过可直接用):

    import reEventID = r'Event ID:\s*(\d+)'Date = r'Date:\s*([^\r\n]+)'Level = r'Level:\s*([^\r\n]+)'Source = r'Source:\s*([^\r\n]+)'Computer = r'Computer:\s*([^\r\n]+)'UserName = r'User Name:\s*([^\r\n]+)'

    [^\r\n]+ 表示"匹配到行尾为止",避免跨行。

    2. 重头戏:Description 多行提取

    Description: 后面是一段可能换行的文本,直到下一个事件的空行才结束。这是最容易写错的地方。

    正确写法(非贪婪 + 前瞻边界):

    Description = r'Description:\s+([\s\S]*?)(?=\n\s*$|\Z)'

    拆解:

    • ([\s\S]*?)
      :非贪婪匹配任意字符(含换行),? 很关键,否则会一直吃到文件末尾
    • (?=\n\s*$|\Z)
      :前瞻断言,匹配"后面是空行"或"文件结尾"才停

    ⚠️ 曾经踩过的坑:早期用 Description:\s+([\s\S]?)\n\s使用者: 来收尾,安全日志能用,但系统日志没有"使用者:"这个子字段,直接失效。改成上面的"空行/结尾"边界,安全日志、系统日志通吃。

    3. 完整提取:先切块,再抠字段

    最稳的做法是先把整份 TXT 按 Event[N]: 切成一条条事件块,再在每块里抠字段:

    import repath = r”C:\日志审计\审计报告_缓存\系统日志.txt”text = open(path, encoding=”utf-8”).read()# 按事件块切分(前瞻断言,不消耗分隔符)pattern_block = re.compile(r'Event\[\d+\]:(.*?)(?=Event\[\d+\]:|\Z)', re.S)blocks = pattern_block.findall(text)def get_field(block, pat): m = re.search(pat, block) return m.group(1).strip() if m else ””rows = []for b in blocks: desc = get_field(b, r'Description:\s+([\s\S]*?)(?=\n\s*$|\Z)')# 去掉 Description 尾部固定空行(见第六节坑 1) desc = re.sub(r'(?:\r?\n[ \t]*)+$', '', desc) rows.append({ ”Date”: get_field(b, r'Date:\s*([^\r\n]+)'), ”EventID”: get_field(b, r'Event ID:\s*(\d+)'), ”Level”: get_field(b, r'Level:\s*([^\r\n]+)'), ”Source”: get_field(b, r'Source:\s*([^\r\n]+)'), ”UserName”: get_field(b, r'User Name:\s*([^\r\n]+)'), ”Computer”: get_field(b, r'Computer:\s*([^\r\n]+)'), ”Description”: desc, })

    rows 就是结构化后的数据,可以直接写 Excel。


    四、影刀 RPA 里怎么落地

    如果你不想碰 Python,纯影刀也能做。核心是两个组件:"从文本中提取内容"+"写入 Excel"

    步骤

      • Event ID → Event ID:\s*(\d+)
      • Date → Date:\s*([^\r\n]+)
      • Description → Description:\s+([\s\S]?)(?=\n\s$|\Z)
      • ……其余同理

      ⚠️ 影刀正则框的隐藏坑:直接在组件里粘贴正则时,影刀 UI 可能把 \d 之类的转义字符自动转义成 Event$$\d+$$: 这种乱码,导致匹配失败。解法:把正则框清空,手动重新打一遍,不要从别处整段粘贴。这是血泪教训。

      💡 Description 尾部空行:影刀写 Excel 时,Description 单元格里经常会多出一串空行(wevtutil 导出时固定的)。在写入前加一个"去除文本首尾空白"组件(等价于 strip()),或者在正则里用上面的前瞻边界,基本能消掉。


      五、Python 版:一次生成完整 Excel

      如果你用影刀的"Python"脚本步骤,下面这段能一条龙把 TXT 变成 .xlsx,比逐个组件拼更稳:

      import refrom openpyxl import Workbookpath = r”C:\日志审计\审计报告_缓存\系统日志.txt”out = r”C:\日志审计\审计报告_缓存\系统日志_结构化.xlsx”text = open(path, encoding=”utf-8”).read()pattern_block = re.compile(r'Event\[\d+\]:(.*?)(?=Event\[\d+\]:|\Z)', re.S)blocks = pattern_block.findall(text)def get_field(block, pat): m = re.search(pat, block) return m.group(1).strip() if m else ””wb = Workbook()ws = wb.activews.append([”Date”, ”EventID”, ”Level”, ”Source”, ”UserName”, ”Computer”, ”Description”])for b in blocks: desc = get_field(b, r'Description:\s+([\s\S]*?)(?=\n\s*$|\Z)') desc = re.sub(r'(?:\r?\n[ \t]*)+$', '', desc)# 去尾部空行 ws.append([ get_field(b, r'Date:\s*([^\r\n]+)'), get_field(b, r'Event ID:\s*(\d+)'), get_field(b, r'Level:\s*([^\r\n]+)'), get_field(b, r'Source:\s*([^\r\n]+)'), get_field(b, r'User Name:\s*([^\r\n]+)'), get_field(b, r'Computer:\s*([^\r\n]+)'), desc, ])wb.save(out)print(f”已生成结构化 Excel:{out},共 {len(blocks)} 条事件”)

      跑完,你就得到一份标准 Excel:每行一条事件,每列一个字段。后续无论筛选、统计、还是整列喂给 AI,都顺了。

      💡 没装 openpyxl?pip install openpyxl 即可。如果影刀环境装不了,也可以先写成 .csv(Python 内置 csv 模块,无需额外依赖),影刀再读取。


      六、几个关键坑,提前帮你踩了

      1. Description 尾部空行
        wevtutil 导出的 TXT,每条事件描述后面都跟着固定空行。直接写 Excel,单元格里就多一串空行。 → 用 re.sub(r'(?:\r?\n[ \t]*)+$', '', desc) 只去尾部空行;或影刀加"去除首尾空白"。
      1. 安全日志 Level 几乎全是"信息"
        别指望靠 Level: 错误 来抓风险——安全日志里登录失败(4625)、账号创建(4720) 通通是"信息"级别。 → 风险判定靠 Event ID,不靠 Level。这是 GXP 审计的铁律。
      1. Event ID + Source 双键才稳
        同一个 Event ID 在不同"来源(Source)"下含义可能不同;而且 Windows 版本升级时,少数 ID 会变。 → 在 Excel 里同时保留 Event ID 和 Source 两列,做判定时双键匹配,跨版本更稳。
      1. 系统日志和安全日志表头基本一致,但别想当然
        你导出的 System 和 Security 日志,字段结构几乎一样,上面这套正则可通吃。但 ForwardedEvents(转发事件)等特例结构可能不同,解析前先抽一条看看格式。
      1. 编码问题
        命令行 wevtutil 默认编码可能是 GBK,不是 UTF-8。Python 读文件时如果乱码,把 encoding="utf-8" 改成 encoding="gbk"(或 "utf-8-sig")试试。 → 影刀"读取文本文件"组件也有编码选项,导出的 TXT 是 GBK 就选 GBK。
      1. 正则贪婪陷阱
        提取多行 Description 时,忘了写 ?(非贪婪),会一直匹配到文件最后。 → 永远用 (.*?) / ([\s\S]*?) 的非贪婪形式,配合前瞻边界收尾。

        七、写在最后:下一篇写什么,评论区你说了算

        这篇把"TXT → Excel 结构化"彻底打通了。下一步二选一,你点哪个我就写哪个:

        • A. AI 怎么研判一条日志
          :把结构化后的 Excel 喂给大模型,事件定性 + 风险分级(高/中/低/可忽略)+ 法规关联(21 CFR Part 11 / Annex 11 / ALCOA+),Prompt 模板直接给你。
        • B. 异常检测从"规则"到"模型"
          :用历史日志训练你的专属异常基线,减少误报,比单纯规则初筛更聪明。

        你最想看哪块?评论区点单,下篇就写你点的那块。 做合规、做 CSV、做 IT 运维的朋友,码住这套流程,转发给需要的同事 👇


        附:本文正则速查表

        # 按事件块切分re.compile(r'Event\[\d+\]:(.*?)(?=Event\[\d+\]:|\Z)', re.S)# 单字段EventID = r'Event ID:\s*(\d+)'Date = r'Date:\s*([^\r\n]+)'Level = r'Level:\s*([^\r\n]+)'Source = r'Source:\s*([^\r\n]+)'Computer = r'Computer:\s*([^\r\n]+)'UserName = r'User Name:\s*([^\r\n]+)'# Description 多行(核心)Description = r'Description:\s+([\s\S]*?)(?=\n\s*$|\Z)'# 去 Description 尾部空行re.sub(r'(?:\r?\n[ \t]*)+$''', desc)

        最新文章

        随机文章

        基本 文件 流程 错误 SQL 调试
        1. 请求信息 : 2026-08-12 06:46:13 HTTP/2.0 GET : https://h.sjds.net/a/545800.html
        2. 运行时间 : 0.229730s [ 吞吐率:4.35req/s ] 内存消耗:4,835.98kb 文件加载:140
        3. 缓存信息 : 0 reads,0 writes
        4. 会话信息 : SESSION_ID=6515ecb76f77b7e164ea2ffb2023044c
        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.001043s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
        2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001647s ]
        3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000696s ]
        4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000655s ]
        5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001417s ]
        6. SELECT * FROM `set` [ RunTime:0.000611s ]
        7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001505s ]
        8. SELECT * FROM `article` WHERE `id` = 545800 LIMIT 1 [ RunTime:0.001255s ]
        9. UPDATE `article` SET `lasttime` = 1786488373 WHERE `id` = 545800 [ RunTime:0.022802s ]
        10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000763s ]
        11. SELECT * FROM `article` WHERE `id` < 545800 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.007064s ]
        12. SELECT * FROM `article` WHERE `id` > 545800 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001050s ]
        13. SELECT * FROM `article` WHERE `id` < 545800 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.013868s ]
        14. SELECT * FROM `article` WHERE `id` < 545800 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006071s ]
        15. SELECT * FROM `article` WHERE `id` < 545800 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004056s ]
        0.235866s