当前位置:首页>python>不用 Python!纯 VBA/VB6 实现 DeepSeek 流式逐字输出,附完整源码

不用 Python!纯 VBA/VB6 实现 DeepSeek 流式逐字输出,附完整源码

  • 2026-08-18 23:10:33
不用 Python!纯 VBA/VB6 实现 DeepSeek 流式逐字输出,附完整源码
看看效果如何?
是不是跟,python,vb.net,c# 等语言渲染的一般无二?
1.主要用到的技术,wininet.dll HTTP/HTTPS 全套流式 SSE 接口(实现 AI 流式接口)

特性:原生系统网络,无需第三方库,支持长连接 SSE 流式返回

API 函数

作用

InternetOpenW

创建全局网络会话句柄(Unicode 宽字符 W 版本)

InternetConnectW

建立 HTTPS 服务器连接(443 端口)

HttpOpenRequestW

构造 POST 请求,设置 HTTPS 安全标记

HttpSendRequestW

发送 JSON 请求体 + 请求头

HttpQueryInfoW

获取 HTTP 响应状态码(200/401/500 等)

InternetReadFile

分段流式读取 SSE 长响应流(核心流式接收)

InternetCloseHandle

安全释放网络句柄,防止内存泄漏

InternetSetOptionW

设置连接 / 发送 / 接收超时、刷新网络缓存

2.kernel32.dll

Sleep:线程休眠,节流读取流,降低 CPU 占用

3.WinINet 配套常量体系

HTTPS 安全标识、无缓存标记、HTTP 服务类型、超时配置、状态码查询常量网络缓存刷新、重置网络会话常量

4.Deepseek客户端类模块具体代码如下
Option Explicit' WinINet api定义Private Declare Function InternetOpenW Lib "wininet.dll" (ByVal lpszAgent As Long, ByVal dwAccessType As Long, ByVal lpszProxy As Long, ByVal lpszProxyBypass As Long, ByVal dwFlags As Long) As LongPrivate Declare Function InternetConnectW Lib "wininet.dll" (ByVal hInternet As Long, ByVal lpszServerName As Long, ByVal nServerPort As Long, ByVal lpszUsername As Long, ByVal lpszPassword As Long, ByVal dwService As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As LongPrivate Declare Function HttpOpenRequestW Lib "wininet.dll" (ByVal hConnect As Long, ByVal lpszVerb As Long, ByVal lpszObjectName As Long, ByVal lpszVersion As Long, ByVal lpszReferrer As Long, ByVal lplpszAcceptTypes As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As LongPrivate Declare Function HttpSendRequestW Lib "wininet.dll" (ByVal hRequest As Long, ByVal lpszHeaders As Long, ByVal dwHeadersLength As Long, ByRef lpOptional As Any, ByVal dwOptionalLength As Long) As LongPrivate Declare Function HttpQueryInfoW Lib "wininet.dll" (ByVal hRequest As Long, ByVal dwInfoLevel As Long, ByRef lpvBuffer As Any, ByRef lpdwBufferLength As Long, ByRef lpdwIndex As Long) As LongPrivate Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByRef lpBuffer As Any, ByVal dwNumberOfBytesToRead As Long, ByRef lpdwNumberOfBytesRead As Long) As LongPrivate Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInternet As Long) As LongPrivate Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)' WinINet 网络常量定义Private Const INTERNET_OPEN_TYPE_DIRECT As Long = 1Private Const INTERNET_SERVICE_HTTP As Long = 3Private Const INTERNET_DEFAULT_HTTPS_PORT As Long = 443Private Const INTERNET_FLAG_SECURE As Long = &H800000        ' 启用 HTTPS/SSLPrivate Const INTERNET_FLAG_RELOAD As Long = &H80000000      ' 强制从服务器下载Private Const INTERNET_FLAG_NO_CACHE_WRITE As Long = &H400000 ' 禁用本地缓存Private Const HTTP_QUERY_STATUS_CODE As Long = 19            ' 获取 HTTP 状态码的指令' 定义事件Event DeepSeekResult(content)' 全局属性Private m_SystemPrompt As StringPrivate m_ApiKey As StringPrivate m_Thinking As BooleanPrivate m_model As String' -- apikey 设置 ----Public Property Get ApiKey() As String    ApiKey = m_ApiKeyEnd PropertyPublic Property Let ApiKey(ByVal vNewValue As String)    m_ApiKey = vNewValueEnd Property' -- 系统提示词 设置 ----Public Property Get SystemPrompt() As String    SystemPrompt = m_SystemPromptEnd PropertyPublic Property Let SystemPrompt(ByVal vNewValue As String)    m_SystemPrompt = vNewValueEnd Property' -- 思考 设置 ----Public Property Get Thinking() As Boolean    Thinking = m_ThinkingEnd PropertyPublic Property Let Thinking(ByVal vNewValue As Boolean)    m_Thinking = vNewValueEnd Property' -- 模型 设置 ----Public Property Get Model() As String    Model = m_modelEnd PropertyPublic Property Let Model(ByVal vNewValue As String)    m_model = vNewValueEnd Property' DeepSeek 实时流式请求与异常捕获Sub RunDeepSeekRealTimeSSE(inputText As String)    ' 定义网络句柄    Dim hInternet As Long, hConnect As Long, hRequest As Long    ' 配置参数    Dim serverName As String: serverName = "api.deepseek.com"    Dim objectName As String: objectName = "/chat/completions"    ' ----    Dim think As String    If Thinking Then        think = "enabled"    Else        think = "disabled"    End If    ' 构造你给出的 JSON 请求体    Dim postData As String    postData = "{""messages"":[{""content"":""" & JsonEscape(SystemPrompt) & """,""role"":""system""},{""content"":""" & inputText & """,""role"":""user""}],""model"":""" & Model & """,""thinking"":{""type"":""" & think & """},""reasoning_effort"":""high"",""max_tokens"":4096,""response_format"":{""type"":""text""},""stream"":true,""temperature"":1}"    ' Debug.Print postData    ' 构造标准的网络请求头    Dim headers As String    headers = "Accept: text/event-stream" & vbCrLf & _        "Authorization: Bearer " & ApiKey & vbCrLf & _        "Content-Type: application/json" & vbCrLf & _        "Cache-Control: no-cache" & vbCrLf    ' 将 String 转换为符合现代网络 API 要求的 UTF-8 二进制字节流    Dim postBytes() As Byte    postBytes = StringToUTF8Bytes(postData)    ' 开始建立底层连接    hInternet = InternetOpenW(StrPtr("VBA_DeepSeek_SSE_Client"), INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0)    If hInternet = 0 Then        MsgBox "初始化 WinINet 环境失败", vbCritical        GoTo CleanUp    End If    hConnect = InternetConnectW(hInternet, StrPtr(serverName), INTERNET_DEFAULT_HTTPS_PORT, 0, 0, INTERNET_SERVICE_HTTP, 0, 0)    If hConnect = 0 Then        MsgBox "连接服务器失败", vbCritical        GoTo CleanUp    End If    hRequest = HttpOpenRequestW(hConnect, StrPtr("POST"), StrPtr(objectName), 0, 0, 0, _        INTERNET_FLAG_SECURE Or INTERNET_FLAG_RELOAD Or INTERNET_FLAG_NO_CACHE_WRITE, 0)    If hRequest = 0 Then        MsgBox "创建 HTTP 请求句柄失败", vbCritical        GoTo CleanUp    End If    ' 发送请求并校验连接状态    Dim sendResult As Long    sendResult = HttpSendRequestW(hRequest, StrPtr(headers), Len(headers), postBytes(0), UBound(postBytes) + 1)    If sendResult = 0 Then        MsgBox "请求发送失败,可能无法触达 API 服务器(请检查网络连接)。", vbCritical        GoTo CleanUp    End If    ' 捕获 HTTP 状态异常    Dim statusCode As Long    Dim statusCodeBuffer(0 To 31) As Byte    Dim bufferLength As Long: bufferLength = UBound(statusCodeBuffer) + 1    Dim index As Long: index = 0    ' 提取 HTTP 状态头中的 Code 字符串    If HttpQueryInfoW(hRequest, HTTP_QUERY_STATUS_CODE, statusCodeBuffer(0), bufferLength, index) <> 0 Then        Dim statusStr As String        statusStr = Left(statusCodeBuffer, bufferLength / 2) ' Unicode双字节转换        statusCode = Val(statusStr)    Else        statusCode = 0    End If    ' 状态异常拦截    If statusCode <> 200 Then        Debug.Print "捕获到 HTTP 状态异常! 状态码: " & statusCode        RaiseEvent DeepSeekResult("捕获到 HTTP 状态异常! 状态码: " & statusCode)        ' 抓取服务器返回的详细错误文本(如 401 鉴权未通过、400 参数格式错误等详细提示)        Dim errBuffer(0 To 4096) As Byte        Dim errBytesRead As Long        Dim errText As String        If InternetReadFile(hRequest, errBuffer(0), UBound(errBuffer) + 1, errBytesRead) <> 0 Then            errText = BytesToBstr(errBuffer, errBytesRead)            Debug.Print "服务器详细报错信息: " & errText            RaiseEvent DeepSeekResult("HTTP 请求异常 (状态码 " & statusCode & "): " & vbCrLf & errText)        Else            RaiseEvent DeepSeekResult("网络请求失败,响应状态码: " & statusCode)        End If        GoTo CleanUp ' 发生异常,拦截并终止后续的 SSE 接收逻辑    End If    ' 状态码 200 OK,开始“真·实时”按行接收流式数据    Dim buffer(0 To 4096) As Byte ' 4KB 接收缓冲区    Dim bytesRead As Long    Dim lineBuffer As String    Dim chunkText As String    Dim lfPos As Long    Dim line As String    Dim dataContent As String    lineBuffer = ""    ' 循环读取数据    Do        ' 直接面向 TCP 套接字读取驱动层刚到达的字节        If InternetReadFile(hRequest, buffer(0), UBound(buffer) + 1, bytesRead) = 0 Then Exit Do        If bytesRead = 0 Then Exit Do ' 数据全部传输完毕,服务器正常关闭连接        ' 立即转换当前抓取到的这几百个/几千个字节为 UTF-8 文本并追加到行缓冲区        chunkText = BytesToBstr(buffer, bytesRead)        lineBuffer = lineBuffer & chunkText        ' 读取流数据        lfPos = InStr(lineBuffer, vbLf)        Do While lfPos > 0            line = Trim(Left(lineBuffer, lfPos - 1))            lineBuffer = Mid(lineBuffer, lfPos + 1)            ' 解析标准 SSE 协议结构            If Len(line) > 0 And Left(line, 5) = "data:" Then                dataContent = Trim(Mid(line, 6))                ' 捕获大模型结束标记 [DONE]                If UCase(dataContent) = "[DONE]" Then                    GoTo CleanUp ' 终止流程                End If                ' 这里是真正的逐行实时响应输出                ' Debug.Print dataContent                RaiseEvent DeepSeekResult(Replace(GetJsonContent(dataContent), "\n", vbLf))            End If            ' 继续检索这一批到达的缓冲区文本中是否还有换行符            lfPos = InStr(lineBuffer, vbLf)        Loop        ' 让出 CPU 时间片        DoEvents        Sleep 5    LoopCleanUp:    ' 释放和关闭底层网络句柄,防止内存泄露和句柄死锁    If hRequest <> 0 Then InternetCloseHandle hRequest    If hConnect <> 0 Then InternetCloseHandle hConnect    If hInternet <> 0 Then InternetCloseHandle hInternetEnd Sub' 底层高效率的编码转化辅助函数' 【二进制字节流 转 UTF-8字符串】Function BytesToBstr(ByRef bytes() As Byte, ByVal length As Long) As String    If length <= 0 Then Exit Function    Dim xStr As Object    Set xStr = CreateObject("ADODB.Stream")    xStr.Type = 1: xStr.Open    Dim tempBytes() As Byte: ReDim tempBytes(0 To length - 1)    Dim i As Long: For i = 0 To length - 1: tempBytes(i) = bytes(i): Next i    xStr.Write tempBytes: xStr.Position = 0    xStr.Type = 2: xStr.Charset = "utf-8"    BytesToBstr = xStr.ReadText: xStr.CloseEnd Function' 【字符串 转 UTF-8二进制字节流】Function StringToUTF8Bytes(ByVal Text As String) As Byte()    If Text = "" Then: StringToUTF8Bytes = Split(""): Exit Function    Dim xStr As Object    Set xStr = CreateObject("ADODB.Stream")    xStr.Type = 2: xStr.Charset = "utf-8": xStr.Open    xStr.WriteText Text: xStr.Position = 0: xStr.Type = 1    xStr.Position = 3 ' 剔除文本前端自动携带的 3 字节 UTF-8 BOM 头    StringToUTF8Bytes = xStr.Read: xStr.CloseEnd Function' 解析jsonFunction GetJsonContent(ByVal jsonStr As String) As String    On Error GoTo ErrHandle    Dim jsCov As Object: Set jsCov = JsonConverter.ParseJson(jsonStr)    If TypeOf jsCov Is Dictionary Then        Dim jsDic As Dictionary: Set jsDic = jsCov        If jsDic.Exists("choices") Then            Dim jsChoices As Collection: Set jsChoices = jsDic.Item("choices")            If jsChoices.Count > 0 Then                Dim jsDicChoItem As Dictionary: Set jsDicChoItem = jsChoices.Item(1)                If jsDicChoItem.Exists("delta") Then                    Dim jsDelta As Dictionary: Set jsDelta = jsDicChoItem.Item("delta")                    If jsDelta.Exists("content") Then                        Dim jsContent As Variant: jsContent = jsDelta.Item("content")                        If Not IsNull(jsContent) And VarType(jsContent) = vbString Then                            GetJsonContent = CStr(jsContent)                        End If                    End If                End If            End If        End If    End If    Exit FunctionErrHandle:    GetJsonContent = ""End FunctionPublic Function JsonEscape(ByVal strSrc As String) As String    Dim s As String    ' 第一步:优先标准化换行(解决vbCrLf拆分丢失字符)    s = Replace(strSrc, vbCrLf, "\n")    s = Replace(s, vbLf, "\n")    s = Replace(s, vbCr, "\r")    s = Replace(s, vbTab, "\t")    ' 第二步:转义关键JSON符号    s = Replace(s, "\", "\\")   ' 先转义反斜杠!顺序绝对不能乱    s = Replace(s, """", "\""")    ' 第三步:清除 0~31 真正的非法控制字符(保留所有可见内容)    Dim res As String    Dim i As Long    Dim c As Long    res = ""    For i = 1 To Len(s)        c = AscW(Mid$(s, i, 1))        ' 只删除:空字符、退格等无效控制码        ' 已经转义的 \n \r \t 字符码会正常保留,不会被误删        If (c < 32) And (c <> 9 And c <> 10 And c <> 13) Then            ' 跳过非法控制字符        Else            res = res & Mid$(s, i, 1)        End If    Next i    JsonEscape = resEnd Function
5.窗体代码及deepseek客户端代码使用
Option Explicit' deepseek客户端Private WithEvents deepseek As DeepseekClient' 窗体加载事件Private Sub Form_Load()    Text1.Text = "你好,你能做些什么?"    Text2.Text = ""    ''--------    Set deepseek = New DeepseekClientEnd Sub' ai提问Private Sub Command1_Click()    Text2.Text = ""    deepseek.Model = "deepseek-v4-pro" ' 模型    deepseek.Thinking = Check1.Value ' 是否思考    deepseek.ApiKey = Text4.Text ' apikeys    deepseek.SystemPrompt = Text3.Text '' 系统提示词    Call deepseek.RunDeepSeekRealTimeSSE(Text1.Text)End Sub' ai 流式返回事件Private Sub deepseek_DeepSeekResult(content As Variant)    Call AppendText(content)End Sub' 给Text追加一行Sub AppendText(ByVal s As String)    Text2.SelStart = Len(Text2.Text)    Text2.SelText = s    Text2.SetFocusEnd Sub
6.好了,就这样吧!代码都给你了,自己研究吧

最新文章

随机文章

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