乐于分享
好东西不私藏

基于VBA调用API在Excel中自动生成音标和翻译

基于VBA调用API在Excel中自动生成音标和翻译

个人主页:云纳星辰怀自在

座右铭:“所谓坚持,就是觉得还有希望!


引言

  • 背景介绍:简述Excel在数据处理中的广泛应用,以及自动生成音标的需求场景(如语言学习、翻译辅助、数据分析)。
  • 问题陈述:Excel本身不提供直接音标生成功能,如何通过技术手段实现自动化。
  • 文章目标:提供实用方法,帮助用户高效集成音标生成到Excel工作流。
  • 关键概念:解释音标(如国际音标IPA)的基本知识,及其在单词发音表示中的重要性。

实现方法概览

  • 总体思路:介绍三种主要实现途径——使用Excel公式、VBA宏编程、以及外部API集成。

方法:使用VBA宏编程(进阶方法)

  • 原理:通过VBA编写宏,调用外部词典API获取音标数据。
  • 步骤详解:
    • 创建宏模块:在VBA编辑器中新建模块。
    • 编写HTTP请求代码:使用XMLHTTP对象发送请求到API,获取JSON响应。
    • 解析音标数据:从JSON中提取音标字段(如IPA符号)。
    • 自动化流程:将音标写入指定单元格。
    • 准备工作:启用Excel宏功能(文件 > 选项 > 信任中心)。
    • VBA基础:简要介绍VBA编辑器界面和基本语法。
    • 集成API:选择免费词典API(如Oxford Dictionaries API或Merriam-Webster API),注册获取API密钥。
    • 宏编写步骤:
    • 示例代码:提供简单VBA代码片段(非完整代码,仅示意)。
      Sub GetPhonetic()    Dim word As String    word = Range("A2").Value ' 假设A2为输入单词    ' 发送API请求并解析音标    ' ...(省略具体代码)    Range("B2").Value = phonetic ' 将音标输出到B2End Sub
    • 错误处理:添加代码处理API失败或无效单词的情况。
  • 优缺点:自动化程度高,可处理动态数据,但需要编程技能和API依赖。
  • 适用场景:中大型项目或需要实时更新的应用。

使用外部工具或插件(简化方法)

  • 原理:利用现成的Excel插件或第三方工具实现音标生成。
  • 步骤详解:
    • 插件推荐:介绍可用工具(如Kutools for Excel或自定义插件),说明安装步骤。
    • 集成方法:演示如何通过插件界面输入单词并自动生成音标。
    • 数据同步:确保插件与Excel数据无缝连接。
  • 优缺点:用户友好,免编程,但可能涉及成本或兼容性问题。
  • 适用场景:非技术用户或快速部署需求。

数据处理与优化

  • 音标显示:讨论如何在Excel中格式化音标(如使用特殊字体或Unicode字符)。
  • 性能优化:处理大数据集时的技巧(如批量处理、缓存机制)。
  • 错误排查:常见问题解决方案(如API限流、单词拼写错误)。

优缺点总结与最佳实践

  • 总结:对比各方法的适用性,推荐VBA+API组合作为高效解决方案。
  • 最佳实践:建议定期更新API密钥、备份数据,并测试不同单词类型。
  • 局限性与改进:讨论方法限制(如API免费版功能有限),提出未来扩展(如集成AI模型)。
  • 核心收获:强调Excel作为灵活工具,可通过技术扩展实现音标自动化生成。

很多时候,Excel借助API和插件可以极大提高工作效率,本文将会详细阐述如何在Excel中实现单词和句式的自动翻译,包括自动生成单词的音标。

一、在Excel中维护英语词库,现在希望:

  • 将这些单词的音标自动注解在单词右侧。
  • 自动翻译这些单词

如下图所示,

二、在Excel中通过自动翻译文本

支持多种语言,如下图所示。


1. 自动生成音标

以下表格为例,希望将英语单词全部自动生成音标。需要借助VBA完成。当然,存在很多种方式,譬如:有道云API等各种,但大都需要付费,本文选择一款免费API,但是功能也首先,无法支持词组。

VBA源码

Option Explicit' ===================================================' 主程序:优化版音标查询 (完整调试信息)' ===================================================Sub FetchPhonetic_Fast()    Dim ws As Worksheet    Dim lastRow As Long, i As Long, successCount As Long, failCount As Long    Dim word As String, url As String, jsonResponse As String    Dim phonetic As String    Dim startTime As Single    Dim totalWords As Long, processedCount As Long    ' 初始化    Set ws = ThisWorkbook.ActiveSheet    Application.ScreenUpdating = False    Application.Calculation = xlCalculationManual    Application.EnableEvents = False    startTime = Timer    ' 找到B列最后一行    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row    If lastRow < 5 Then        MsgBox "请在B列从第5行开始输入单词。", vbExclamation        GoTo CleanExit    End If    ' 清空D列(音标列)旧数据    ws.Range("D5:D" & lastRow).ClearContents    ' 初始化计数器    successCount = 0    failCount = 0    processedCount = 0    totalWords = lastRow - 4    ' 主循环    For i = 5 To lastRow        word = Trim(ws.Cells(i, "B").Value)        ' 空单元格快速跳过机制        If word = "" Then            ws.Cells(i, "D").Value = "(空)"            Application.StatusBar = "跳过空行: " & i - 4 & "/" & totalWords            DoEvents            GoTo NextRow        End If        ' 处理非空单词        processedCount = processedCount + 1        phonetic = ""        ' 更新状态栏        Application.StatusBar = "[" & processedCount & "个词/" & totalWords & "行] " & word        ' === 调试信息:显示当前处理的行和单词 ===        Debug.Print "========================================"        Debug.Print "【主程序】第 " & i & " 行 | 单词: """ & word & """"        Debug.Print "----------------------------------------"        ' 构建请求URL并获取数据        url = "https://api.dictionaryapi.dev/api/v2/entries/en/" & EncodeURIComponent(word)        Debug.Print "【主程序】请求URL: " & url        jsonResponse = HttpGetWithTimeout(url, 5000) ' 5秒超时        ' === 调试信息:显示API返回状态 ===        Debug.Print "【主程序】API返回状态: " & Left(jsonResponse, 150)        Debug.Print "----------------------------------------"        ' 智能解析音标        phonetic = ExtractPhoneticFromJSON(jsonResponse, word)        ' 更新计数器        Select Case phonetic            Case "不支持""(查询失败)""(查询超时)"                failCount = failCount + 1            Case Else                successCount = successCount + 1        End Select        ' 写入结果        ws.Cells(i, "D").Value = phonetic        ' === 调试信息:显示最终结果 ===        Debug.Print "【主程序】写入单元格结果: """ & phonetic & """"        Debug.Print "【主程序】成功数: " & successCount & " | 失败数: " & failCount        Debug.Print "========================================"        Debug.Print ""        ' 关键:让Excel处理其它事件        DoEvents        ' 智能延迟        If i < lastRow Then            If phonetic = "(查询超时)" Or phonetic = "(查询失败)" Then                WaitSeconds 0.8            ElseIf successCount Mod 5 = 0 And successCount > 0 Then                WaitSeconds 0.3            End If        End IfNextRow:    Next i    ' 完成报告    Dim timeCost As Single    timeCost = Timer - startTime    MsgBox "查询完成!" & vbNewLine & _           "表格总行数: " & totalWords & vbNewLine & _           "实际处理单词: " & processedCount & vbNewLine & _           "成功获取音标: " & successCount & vbNewLine & _           "查询失败/不支持: " & failCount & vbNewLine & _           "空单元格跳过: " & (totalWords - processedCount) & vbNewLine & _           "总耗时: " & Format(timeCost, "0.0") & " 秒", _           vbInformation, "完成报告"CleanExit:    ' 恢复Excel设置    Application.StatusBar = False    Application.ScreenUpdating = True    Application.Calculation = xlCalculationAutomatic    Application.EnableEvents = TrueEnd Sub' ===================================================' 核心函数1:增强调试版HTTP GET请求' ===================================================Private Function HttpGetWithTimeout(url As String, timeoutMs As Long) As String    Dim http As Object    Dim startTime As Single    Dim errMsg As String    On Error GoTo ErrorHandler    ' 记录开始时间    startTime = Timer    Debug.Print "  【HTTP】开始请求,超时: " & timeoutMs & "ms"    Debug.Print "  【HTTP】目标URL: " & url    ' 尝试多种HTTP对象(按兼容性排序)    Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0")    If http Is Nothing Then        Debug.Print "  【HTTP】ServerXMLHTTP.6.0 创建失败,尝试XMLHTTP"        Set http = CreateObject("MSXML2.XMLHTTP")    End If    If http Is Nothing Then        Debug.Print "  【HTTP】XMLHTTP 创建失败,尝试Microsoft.XMLHTTP"        Set http = CreateObject("Microsoft.XMLHTTP")    End If    If http Is Nothing Then        errMsg = "[ERROR]: 无法创建任何HTTP对象"        Debug.Print "  【HTTP】" & errMsg        HttpGetWithTimeout = errMsg        Exit Function    End If    Debug.Print "  【HTTP】对象创建成功: " & TypeName(http)    ' 设置超时    http.setTimeouts timeoutMs, timeoutMs, timeoutMs, timeoutMs    ' 发送请求    http.Open "GET", url, False    Debug.Print "  【HTTP】连接已打开,准备发送..."    http.send    Debug.Print "  【HTTP】请求已发送,等待响应..."    ' 等待响应    Do While http.readyState <> 4        DoEvents        If (Timer - startTime) * 1000 > timeoutMs Then            errMsg = "[TIMEOUT]: 超过" & timeoutMs & "毫秒未响应"            Debug.Print "  【HTTP】" & errMsg            HttpGetWithTimeout = errMsg            Exit Function        End If    Loop    Dim elapsedTime As Single    elapsedTime = (Timer - startTime) * 1000    Debug.Print "  【HTTP】请求完成,耗时: " & Format(elapsedTime, "0") & "ms"    Debug.Print "  【HTTP】HTTP状态码: " & http.Status & " " & http.statusText    Debug.Print "  【HTTP】readyState: " & http.readyState    ' 检查HTTP状态码    If http.Status = 200 Then        Dim responseText As String        responseText = http.responseText        Debug.Print "  【HTTP】响应长度: " & Len(responseText) & " 字符"        If Len(responseText) > 0 Then            Debug.Print "  【HTTP】响应前200字符: " & Left(responseText, 200)        Else            Debug.Print "  【HTTP】响应内容为空"        End If        ' 检测是否为"未找到定义"的错误        If InStr(1, responseText, """No Definitions Found""", vbTextCompare) > 0 Then            HttpGetWithTimeout = "[NO_DEFINITION]"        Else            HttpGetWithTimeout = responseText        End If    Else        ' 记录详细的HTTP错误信息        errMsg = "[ERROR]: HTTP " & http.Status & " - " & http.statusText        Debug.Print "  【HTTP】" & errMsg        ' 如果是403/404等常见错误,尝试获取更多信息        If http.Status >= 400 Then            Dim errorBody As String            errorBody = http.responseText            If Len(errorBody) > 0 Then                Debug.Print "  【HTTP】错误详情: " & Left(errorBody, 200)            End If        End If        HttpGetWithTimeout = errMsg    End If    ' 清理对象    Set http = Nothing    Exit FunctionErrorHandler:    ' 捕获并记录VBA错误    errMsg = "[ERROR]: " & Err.Number & " - " & Err.Description    Debug.Print "  【HTTP】VBA错误发生!"    Debug.Print "  【HTTP】错误号: " & Err.Number    Debug.Print "  【HTTP】错误描述: " & Err.Description    Debug.Print "  【HTTP】错误来源: " & Err.Source    If Not http Is Nothing Then        Debug.Print "  【HTTP】HTTP对象状态 - readyState: " & http.readyState    End If    HttpGetWithTimeout = errMsgEnd Function' ===================================================' 核心函数2:智能音标提取 (优先phonetic,其次phonetics[1].text)' ===================================================Private Function ExtractPhoneticFromJSON(jsonText As String, word As String) As String    ' 步骤0:处理特殊标记    If jsonText = "[NO_DEFINITION]" Then        Debug.Print "  【解析】API返回: 单词未找到定义"        ExtractPhoneticFromJSON = "不支持"        Exit Function    End If    If Left(jsonText, 7) = "[ERROR]" Then        Debug.Print "  【解析】HTTP请求失败: " & jsonText        ExtractPhoneticFromJSON = "(查询失败)"        Exit Function    End If    If jsonText = "[TIMEOUT]" Then        Debug.Print "  【解析】请求超时"        ExtractPhoneticFromJSON = "(查询超时)"        Exit Function    End If    ' 检查是否为有效的JSON(以 [ 或 { 开头)    If Len(jsonText) < 10 Then        Debug.Print "  【解析】响应文本过短,长度: " & Len(jsonText)        ExtractPhoneticFromJSON = "(查询失败)"        Exit Function    End If    Dim firstChar As String    firstChar = Left(jsonText, 1)    If firstChar <> "[" And firstChar <> "{" Then        Debug.Print "  【解析】无效JSON响应,开头字符: """ & firstChar & """"        Debug.Print "  【解析】响应开头: " & Left(jsonText, 100)        ExtractPhoneticFromJSON = "(查询失败)"        Exit Function    End If    Debug.Print "  【解析】开始解析JSON,长度: " & Len(jsonText) & " 字符"    Debug.Print "  【解析】JSON开头: " & Left(jsonText, 80) & "..."    ' === 策略1:优先查找顶层的 "phonetic""/.../" 字段(如gymnastics、cat) ===    Dim phonetic As String    phonetic = FindJsonValueByKey(jsonText, "phonetic")    If phonetic <> "" Then        Debug.Print "  【解析】找到顶层phonetic字段: """ & phonetic & """"        If InStr(phonetic, "/") > 0 Then            Debug.Print "  【解析】? 有效音标格式,使用顶层phonetic"            ExtractPhoneticFromJSON = phonetic            Exit Function        Else            Debug.Print "  【解析】? phonetic字段不含音标符号/,继续查找"        End If    Else        Debug.Print "  【解析】未找到顶层phonetic字段"    End If    ' === 策略2:查找 phonetics 数组中的 text 字段 ===    Debug.Print "  【解析】开始搜索phonetics数组..."    ' 首先检查phonetics数组是否存在    If InStr(1, jsonText, """phonetics"":", vbTextCompare) = 0 Then        Debug.Print "  【解析】JSON中未找到phonetics字段"        ExtractPhoneticFromJSON = "不支持"        Exit Function    End If    ' 尝试查找第一个text字段 (索引0)    Dim textFromArray As String    textFromArray = FindTextInPhoneticsArray(jsonText, 0)    If textFromArray <> "" And InStr(textFromArray, "/") > 0 Then        Debug.Print "  【解析】找到phonetics[0].text: """ & textFromArray & """"        ExtractPhoneticFromJSON = textFromArray        Exit Function    End If    ' 尝试查找第二个text字段 (索引1) - 针对hello这类单词    textFromArray = FindTextInPhoneticsArray(jsonText, 1)    If textFromArray <> "" And InStr(textFromArray, "/") > 0 Then        Debug.Print "  【解析】找到phonetics[1].text: """ & textFromArray & """"        ExtractPhoneticFromJSON = textFromArray        Exit Function    End If    ' 通用查找:尝试查找任何text字段    Debug.Print "  【解析】尝试通用查找任何text字段..."    textFromArray = FindAnyTextInPhonetics(jsonText)    If textFromArray <> "" And InStr(textFromArray, "/") > 0 Then        Debug.Print "  【解析】通用查找到text: """ & textFromArray & """"        ExtractPhoneticFromJSON = textFromArray        Exit Function    End If    Debug.Print "  【解析】? 未找到任何有效音标字段"    Debug.Print "  【解析】JSON中包含phonetics但无有效text字段"    ExtractPhoneticFromJSON = "不支持"End Function' ===================================================' 辅助函数1:通用的JSON键值查找' ===================================================Private Function FindJsonValueByKey(jsonText As String, key As String) As String    Dim searchKey As String, posStart As Long, posEnd As Long    ' 模式1: "key""value" (带空格)    searchKey = """" & key & """: """    posStart = InStr(1, jsonText, searchKey, vbTextCompare)    If posStart > 0 Then        posStart = posStart + Len(searchKey)        posEnd = InStr(posStart, jsonText, """", vbTextCompare)        If posEnd > posStart Then            FindJsonValueByKey = Mid(jsonText, posStart, posEnd - posStart)            Exit Function        End If    End If    ' 模式2: "key":"value" (无空格)    searchKey = """" & key & """:"""    posStart = InStr(1, jsonText, searchKey, vbTextCompare)    If posStart > 0 Then        posStart = posStart + Len(searchKey)        posEnd = InStr(posStart, jsonText, """", vbTextCompare)        If posEnd > posStart Then            FindJsonValueByKey = Mid(jsonText, posStart, posEnd - posStart)            Exit Function        End If    End If    ' 模式3: "key": value (值可能无引号,但音标通常有引号)    searchKey = """" & key & """:"    posStart = InStr(1, jsonText, searchKey, vbTextCompare)    If posStart > 0 Then        posStart = posStart + Len(searchKey)        ' 跳过空格        Do While posStart <= Len(jsonText) And Mid(jsonText, posStart, 1) = " "            posStart = posStart + 1        Loop        If posStart <= Len(jsonText) Then            If Mid(jsonText, posStart, 1) = """" Then                posStart = posStart + 1                posEnd = InStr(posStart, jsonText, """", vbTextCompare)                If posEnd > posStart Then                    FindJsonValueByKey = Mid(jsonText, posStart, posEnd - posStart)                End If            End If        End If    End IfEnd Function' ===================================================' 辅助函数2:在phonetics数组中查找指定索引的text字段(已修复循环)' ===================================================Private Function FindTextInPhoneticsArray(jsonText As String, targetIndex As Long) As String    Dim searchKey As String    Dim posStart As Long, currentPos As Long    Dim foundCount As Long    Dim inPhoneticsArray As Boolean    ' 查找 "phonetics": 的位置    searchKey = """phonetics"":"    posStart = InStr(1, jsonText, searchKey, vbTextCompare)    If posStart = 0 Then        Exit Function    End If    currentPos = posStart + Len(searchKey)    foundCount = -1 ' 从-1开始,找到第一个"text":"时变为0    inPhoneticsArray = False    ' 查找数组开始位置 [    Do While currentPos <= Len(jsonText)        If Mid(jsonText, currentPos, 1) = "[" Then            inPhoneticsArray = True            currentPos = currentPos + 1            Exit Do        End If        currentPos = currentPos + 1    Loop    If Not inPhoneticsArray Then        Exit Function    End If    ' 在数组内查找 - 使用Do While...Loop结构(支持Exit Do)    Do While currentPos <= Len(jsonText) And inPhoneticsArray        ' 检查是否遇到数组结束        If Mid(jsonText, currentPos, 1) = "]" Then            inPhoneticsArray = False            Exit Do        End If        ' 查找 "text":" 模式        If Mid(jsonText, currentPos, 8) = """text"":""" Then            foundCount = foundCount + 1            If foundCount = targetIndex Then                ' 找到目标索引的text字段                posStart = currentPos + 8 ' 跳过 """text"":"""                Dim posEnd As Long                posEnd = InStr(posStart, jsonText, """", vbTextCompare)                If posEnd > posStart Then                    FindTextInPhoneticsArray = Mid(jsonText, posStart, posEnd - posStart)                    Exit Function                End If            End If            ' 跳过这个text值,继续查找下一个            currentPos = currentPos + 8        Else            currentPos = currentPos + 1        End If    Loop    FindTextInPhoneticsArray = ""End Function' ===================================================' 辅助函数3:通用查找phonetics中的任何text字段' ===================================================Private Function FindAnyTextInPhonetics(jsonText As String) As String    Dim posStart As Long, posEnd As Long    ' 直接查找第一个 "text":"/.../" 模式    posStart = InStr(1, jsonText, """text"":""/", vbTextCompare)    If posStart = 0 Then        ' 尝试查找 "text":" 后接任何内容        posStart = InStr(1, jsonText, """text"":""", vbTextCompare)    End If    If posStart > 0 Then        posStart = posStart + 8 ' 跳过 """text"":"""        posEnd = InStr(posStart, jsonText, """", vbTextCompare)        If posEnd > posStart Then            FindAnyTextInPhonetics = Mid(jsonText, posStart, posEnd - posStart)        End If    End IfEnd Function' ===================================================' 辅助函数4:URL编码' ===================================================Private Function EncodeURIComponent(text As String) As String    Dim encoded As String, i As Long, ch As String, ascVal As Integer    encoded = ""    For i = 1 To Len(text)        ch = Mid(text, i, 1)        Select Case ch            Case "A" To "Z", "a" To "z", "0" To "9", "-", "_", ".", "~"                encoded = encoded & ch            Case " "                encoded = encoded & "%20"            Case Else                ascVal = AscW(ch)                If ascVal < 0 Then ascVal = ascVal + 65536                encoded = encoded & "%" & Hex(ascVal)        End Select    Next i    Debug.Print "  【编码】原始: """ & text & """ -> 编码: """ & encoded & """"    EncodeURIComponent = encodedEnd Function' ===================================================' 辅助函数5:精确等待' ===================================================Private Sub WaitSeconds(seconds As Single)    Dim startTime As Single    startTime = Timer    Do While Timer < startTime + seconds        DoEvents    LoopEnd Sub

操作步骤

点击“一键查询”按钮,开始执行,完成后弹出右侧提示窗。结果如下:


2.自动翻译

下载安装“方方格子”插件

下载链接:http://www.ffcell.com/home/ffcell.aspx

选择适合电脑版本,下载安装,安装成功后如下图所示。

操作步骤

按如下图步骤进行操作

自动翻译结果如下:


资源<Excel文档>: 基于VBA调用API在Excel中自动生成音标和翻译


参考文章

  1. 微电网系列之分布式发电定义与特性
  2. 微电网系列之微电网分类定义
  3. 微电网系列之微电网控制
  4. 微电网系列之潮流方向
  5. 微电网系列之微电网关键技术和规划
  6. 微电网系列之微电网的运行控制
  7. 微电网系列之规划和运行控制
  8. 微电网系列之微电网的孤岛运行
  9. 微电网系列之微电网的故障检测与接入标准
  10. 微电网系列之变流器分类
  11. 微电网系列之PQ控制基本原理
  12. 微电网系列之PQ控制实现

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-09 17:11:48 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/594094.html
  2. 运行时间 : 0.133586s [ 吞吐率:7.49req/s ] 内存消耗:4,812.31kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=14bd1f50a2434784cd0674acaba1904c
  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.000471s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000737s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000308s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000252s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000476s ]
  6. SELECT * FROM `set` [ RunTime:0.000190s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000498s ]
  8. SELECT * FROM `article` WHERE `id` = 594094 LIMIT 1 [ RunTime:0.001224s ]
  9. UPDATE `article` SET `lasttime` = 1778317908 WHERE `id` = 594094 [ RunTime:0.010729s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000417s ]
  11. SELECT * FROM `article` WHERE `id` < 594094 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.004662s ]
  12. SELECT * FROM `article` WHERE `id` > 594094 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000603s ]
  13. SELECT * FROM `article` WHERE `id` < 594094 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000894s ]
  14. SELECT * FROM `article` WHERE `id` < 594094 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000798s ]
  15. SELECT * FROM `article` WHERE `id` < 594094 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.009198s ]
0.137541s