当前位置:首页>PPT>【一周精选】Python打造高颜值PPT/文本语音合成工具

【一周精选】Python打造高颜值PPT/文本语音合成工具

  • 2026-05-05 09:09:07
【一周精选】Python打造高颜值PPT/文本语音合成工具

一键生成专业级语音,零基础也能上手!

在数字化办公、自媒体创作、在线教育飞速发展的今天,语音合成早已成为提升效率、丰富内容形式的核心工具。不管是老师需要把PPT课件转换成语音讲解、自媒体人要快速生成配音文案、职场人需要将文本资料转为音频方便收听,还是开发者想打造专属的语音工具,一款界面美观、功能全面、操作简单、音质高清的语音合成工具,都能完美解决你的需求。

但市面上的语音工具要么收费昂贵、要么音质生硬、要么界面简陋功能残缺,想要找到一款完全免费、无广告、支持自定义音色语速音量、还能直接读取PPT和TXT文件的全能工具,简直难上加难!更重要的是,对于零基础的小伙伴来说,复杂的代码配置、繁琐的依赖安装、容易报错的运行环境,直接劝退了大部分人。

今天,我就带着一款纯Python开发的高颜值语音合成工具来了!这款工具完美融合了美观大方的GUI界面、全面实用的核心功能、极致稳定的运行逻辑,采用微软Edge官方语音库,音质媲美真人配音,支持PPT逐页转语音、文本直接转语音、TXT文件导入转语音三大核心功能,还能自定义音量、语速、多风格音色,界面精致高级、不透明超好看,操作零门槛,无需编程基础,双击就能运行!

更贴心的是,工具内置自动依赖安装功能,不用你手动敲一行安装命令,还做了全方位的安全容错处理,参数超限自动恢复、异常报错自动提示,彻底解决运行崩溃问题。接下来,我就带大家深度拆解这款工具的代码逻辑,从界面搭建、核心功能到异常处理,手把手教你打造属于自己的全能语音合成工具,看完就能直接复用,轻松实现语音自由!

一、工具核心亮点速览

  1. 高颜值GUI界面:采用Tkinter美化设计,布局合理、配色高级、不透明质感,操作直观易懂;
  2. 全能功能覆盖:PPT逐页转语音、自定义文本转语音、TXT文件导入转语音、语音预听测试;
  3. 专业级音质:搭载微软Edge TTS引擎,支持9种热门音色,涵盖普通话、粤语、台湾腔、英文发音;
  4. 自定义参数:音量50%-150%可调、语速0.8-1.5倍可控,参数自动限制安全区间;
  5. 零配置运行:自动检测并安装依赖,无需手动配置环境,小白直接上手;
  6. 安全容错机制:多重异常捕获,参数错误、文件缺失、合成失败自动提示,运行超稳定;
  7. 便捷输出:自动创建桌面输出目录,生成后直接打开文件夹,一键导出MP3音频。

二、核心代码深度拆解(三大部分详解)

第一部分:依赖自动安装 + 基础配置模块

这是工具的基石模块,核心作用是解决零基础用户的环境配置难题,同时定义语音库、输出目录等全局参数,让工具开箱即用。

核心功能:

  1. 自动检测缺失的第三方库,调用pip自动安装(使用清华镜像源,下载速度超快);
  2. 定义内置语音库,涵盖多风格、多语言音色,满足不同场景需求;
  3. 自动创建桌面输出文件夹,无需手动新建,避免路径错误;
  4. 统一编码规范,适配Windows系统,兼容所有PPTX格式文件。
import sysimport osimport subprocessimport tkinter as tkfrom tkinter import ttk, filedialog, messageboxfrom pptx import Presentationimport asyncioimport edge_ttsfrom pathlib import Path# 自动安装依赖函数:检测缺失库并一键安装,小白无需手动操作definstall(pkg):    subprocess.check_call([sys.executable, "-m""pip""install", pkg, "-i""https://pypi.tuna.tsinghua.cn/simple"])# 异常捕获:自动安装python-pptx(PPT解析库)try:from pptx import Presentationexcept:    install("python-pptx")# 异常捕获:自动安装edge-tts(微软语音合成库)try:import edge_ttsexcept:    install("edge-tts")# ===================== 语音库:9种精品音色,支持多语言/方言 =====================VOICES = {"中文-晓晓""zh-CN-XiaoxiaoNeural","中文-晓辰""zh-CN-XiaochenNeural","中文-云希""zh-CN-YunxiNeural","中文-云扬""zh-CN-YunyangNeural","中文-粤语-云知""zh-HK-HiuMaanNeural","中文-台湾-晓曼""zh-TW-HsiaoChenNeural","英文-Aria""en-US-AriaNeural","英文-Jenny""en-US-JennyNeural","英文-Guy""en-US-GuyNeural",}# 默认输出目录:自动创建在桌面,路径标准化,避免报错OUTPUT_DIR = str(Path.home() / "Desktop/PPT语音输出")os.makedirs(OUTPUT_DIR, exist_ok=True)

关键知识点:

  • subprocess模块:调用系统命令实现pip自动安装,彻底解决依赖缺失问题;
  • try-except异常捕获:主动检测库是否存在,无感知完成安装;
  • Path.home():跨平台获取用户桌面路径,Windows/Mac通用;
  • os.makedirs(exist_ok=True):文件夹已存在则不创建,避免重复创建报错。

第二部分:GUI界面搭建模块(高颜值核心)

这是工具的颜值担当,基于Tkinter+tttk开发,打造精致高级、不透明的可视化界面,包含参数设置、功能按钮、日志输出等所有交互组件,操作逻辑完全贴合用户习惯。

核心功能:

  1. 自定义界面样式:微软雅黑字体、主题配色、按钮样式,高级感拉满;
  2. 功能分区清晰:保存设置、语音参数、转换功能、运行日志四大模块;
  3. 交互控件完善:音色下拉框、音量/语速滑块、文件选择器、文本输入框;
  4. 实时日志输出:同步显示工具运行状态,成功/失败一目了然;
  5. 参数安全限制:音量、语速自动锁定在安全区间,防止合成异常。
# ===================== 主界面类:封装所有UI功能 =====================classAudioConverterApp:def__init__(self, root):        self.root = root        self.root.title("📢 语音合成工具 安全容错版")        self.root.geometry("780x760")  # 固定窗口大小,美观不拉伸        self.root.resizable(FalseFalse)# 定义变量:存储文件路径、参数、文本内容        self.ppt_path = tk.StringVar(value="未选择")        self.save_dir = tk.StringVar(value=OUTPUT_DIR)        self.preview_text = tk.StringVar(value="你好,欢迎使用语音合成工具")        self.volume = tk.IntVar(value=100)  # 默认音量100%        self.rate = tk.DoubleVar(value=1.0)  # 默认语速1.0倍        self.set_style()   # 初始化界面样式        self.build_ui()    # 构建所有UI组件# 界面美化:设置主题、字体、按钮样式,高级不透明defset_style(self):        style = ttk.Style()        style.theme_use("clam")        style.configure(".", font=("微软雅黑"10))        style.configure("TButton", padding=6, font=("微软雅黑"10"bold"))        style.configure("Accent.TButton", background="#2d8cf0", foreground="white")        style.configure("Title.TLabel", font=("微软雅黑"13"bold"))# 日志函数:实时输出运行信息,方便排查问题deflog(self, msg):        self.log_box.insert(tk.END, f"[{self.now()}{msg}\n")        self.log_box.see(tk.END)        self.root.update()# 获取当前时间:日志时间戳defnow(self):from datetime import datetimereturn datetime.now().strftime("%H:%M:%S")# 音量安全限制:50~150%,防止音量过高/过低defupdate_volume_label(self, *args):        val = max(50, min(self.volume.get(), 150))        self.volume.set(val)        self.vol_label.config(text=f"音量:{val}%")# 语速安全限制:0.8~1.5倍,防止语速过快/过慢defupdate_rate_label(self, *args):        val = max(0.8, min(self.rate.get(), 1.5))        self.rate.set(val)        self.rate_label.config(text=f"语速:{val:.1f}x")# 完整UI构建:包含所有功能按钮、输入框、滑块defbuild_ui(self):# 标题        ttk.Label(self.root, text="📢 PPT / 文本 / TXT 转语音工具", style="Title.TLabel").pack(pady=8)# 1. 保存目录设置        frame1 = ttk.LabelFrame(self.root, text="保存设置")        frame1.pack(fill=tk.X, padx=18, pady=5)        ttk.Button(frame1, text="选择保存目录", command=self.select_save_dir).grid(row=0, column=0, padx=10, pady=6)        ttk.Label(frame1, textvariable=self.save_dir, wraplength=550).grid(row=0, column=1, sticky="w")# 2. 语音参数设置(音色+音量+语速+预听)        frame2 = ttk.LabelFrame(self.root, text="语音参数")        frame2.pack(fill=tk.X, padx=18, pady=5)        ttk.Label(frame2, text="音色:").grid(row=0, column=0, padx=10, pady=6)        self.voice_cbx = ttk.Combobox(frame2, values=list(VOICES.keys()), state="readonly", width=32)        self.voice_cbx.grid(row=0, column=1, padx=8, pady=6)        self.voice_cbx.current(0)# 音量滑块        self.vol_label = ttk.Label(frame2, text=f"音量:{self.volume.get()}%")        self.vol_label.grid(row=0, column=2, padx=5)        vol_scale = tk.Scale(frame2, from_=0, to=200, variable=self.volume, length=130, orient="horizontal")        vol_scale.grid(row=0, column=3, padx=5)        self.volume.trace_add("write", self.update_volume_label)# 语速滑块        self.rate_label = ttk.Label(frame2, text=f"语速:{self.rate.get():.1f}x")        self.rate_label.grid(row=0, column=4, padx=5)        rate_scale = tk.Scale(frame2, from_=0.5, to=2.0, resolution=0.1, variable=self.rate, length=130, orient="horizontal")        rate_scale.grid(row=0, column=5, padx=5)        self.rate.trace_add("write", self.update_rate_label)# 语音预听        ttk.Entry(frame2, textvariable=self.preview_text, width=30).grid(row=1, column=0, columnspan=4, pady=6)        ttk.Button(frame2, text="🎧 预听", style="Accent.TButton", command=self.preview_voice).grid(row=1, column=4, columnspan=2, pady=6)# 3. 核心转换功能(PPT+文本+TXT)        frame3 = ttk.LabelFrame(self.root, text="转换功能")        frame3.pack(fill=tk.BOTH, expand=True, padx=18, pady=5)# PPT转换        ttk.Label(frame3, text="📄 PPT 转语音:").grid(row=0, column=0, sticky="w", padx=10, pady=6)        ttk.Button(frame3, text="选择PPT", command=self.select_ppt).grid(row=0, column=1, padx=5)        ttk.Label(frame3, textvariable=self.ppt_path).grid(row=0, column=2, sticky="w")        ttk.Button(frame3, text="开始转换PPT", style="Accent.TButton", command=self.start_ppt).grid(row=0, column=3, padx=10)# 文本编辑+TXT导入        ttk.Label(frame3, text="✍️ 文本编辑:").grid(row=1, column=0, sticky="nw", padx=10, pady=6)        self.text_input = tk.Text(frame3, height=7, width=65, font=("微软雅黑"10))        self.text_input.grid(row=1, column=1, columnspan=3, padx=5, pady=4)        self.text_input.insert("end""在这里输入文字...")        ttk.Button(frame3, text="📑 导入TXT", command=self.import_txt).grid(row=2, column=1, sticky="w", pady=4)        ttk.Button(frame3, text="🔊 生成语音", style="Accent.TButton", command=self.start_text).grid(row=2, column=3, sticky="e", pady=4)# 4. 运行日志框        ttk.Label(self.root, text="运行日志").pack(pady=2)        self.log_box = tk.Text(self.root, height=11, width=90, font=("Consolas"9))        self.log_box.pack(padx=18, pady=5)        self.log("✅ 工具启动成功,音量语速已限制在安全区间")

关键知识点:

  • ttk.Style():自定义界面样式,实现高级美观的UI效果;
  • Scale滑块+trace_add:实时监听参数变化,自动限制安全区间;
  • LabelFrame分组:功能分区清晰,界面整洁有序;
  • tkinter变量绑定:实时同步文件路径、参数值,交互更流畅。

第三部分:核心语音合成 + 功能逻辑模块

这是工具的核心大脑,集成PPT文本解析、异步语音合成、文件操作、多线程处理、异常容错等所有核心逻辑,实现语音合成的最终效果。

核心功能:

  1. 异步语音合成:基于edge-tts异步引擎,合成速度快、音质高清;
  2. PPT解析:逐页读取PPT文本内容,自动按页生成语音文件;
  3. 语音预听:快速测试音色、音量、语速,满意再生成;
  4. TXT导入:直接读取文本文件,无需手动复制粘贴;
  5. 多线程处理:防止合成时界面卡死,运行更流畅;
  6. 双重异常捕获:合成失败自动恢复默认参数,极致稳定。
# ===================== 核心语音合成函数:异步处理,音质高清 =====================asyncdeftts(self, text, path):        voice = VOICES[self.voice_cbx.get()]        volume = f"+{self.volume.get()}%"# 转换语速格式:适配edge-tts参数规范        rate_percent = int((self.rate.get() - 1) * 100)        rate = f"+{rate_percent}%"if rate_percent >= 0elsef"{rate_percent}%"# 执行语音合成        comm = edge_tts.Communicate(text=text, voice=voice, volume=volume, rate=rate)await comm.save(path)# 选择保存目录defselect_save_dir(self):        d = filedialog.askdirectory()if d:            self.save_dir.set(d)            self.log(f"保存目录:{d}")# 选择PPT文件defselect_ppt(self):        p = filedialog.askopenfilename(filetypes=[("PPTX""*.pptx")])if p:            self.ppt_path.set(os.path.basename(p))            self.ppt_full_path = p            self.log(f"已选择:{os.path.basename(p)}")# 解析PPT:逐页提取所有文本内容defget_ppt_texts(self):        prs = Presentation(self.ppt_full_path)        texts = []for slide in prs.slides:            txt = ""for sh in slide.shapes:if hasattr(sh, "text"and sh.text.strip():                    txt += sh.text.strip() + " "if txt.strip():                texts.append(txt.strip())return texts# 语音预听功能:测试效果defpreview_voice(self):        text = self.preview_text.get().strip()ifnot text:            messagebox.showwarning("提示""请输入预听内容")returntry:            asyncio.run(self.tts(text, "temp_preview.mp3"))            self.log(f"🎧 预听成功 音量:{self.volume.get()}% 语速:{self.rate.get():.1f}x")            os.startfile("temp_preview.mp3")except Exception as e:# 容错机制:失败后自动恢复默认参数重试try:                self.volume.set(100)                self.rate.set(1.0)                asyncio.run(self.tts(text, "temp_preview.mp3"))                self.log("⚠️  参数超限,已自动恢复默认并预听成功")                os.startfile("temp_preview.mp3")except:                self.log(f"❌ 预听失败:{str(e)}")                messagebox.showerror("错误""合成失败,请切回默认音色")# PPT转换:多线程运行,防止界面卡死defstart_ppt(self):ifnot hasattr(self, "ppt_full_path"):            messagebox.showwarning("提示""请选择PPT")returnimport threading        threading.Thread(target=self._ppt_thread, daemon=True).start()def_ppt_thread(self):try:            texts = self.get_ppt_texts()            self.log(f"共 {len(texts)} 页有效内容")for i, t in enumerate(texts):                out = os.path.join(self.save_dir.get(), f"第{i+1}页.mp3")                self.log(f"生成第 {i+1} 页...")                asyncio.run(self.tts(t, out))            self.log("✅ PPT转换完成!")            messagebox.showinfo("完成""全部生成完毕")            os.startfile(self.save_dir.get())except Exception as e:            self.log(f"❌ 错误:{str(e)}")# 自定义文本转语音defstart_text(self):        text = self.text_input.get("1.0", tk.END).strip()ifnot text:            messagebox.showwarning("提示""请输入内容")returntry:            out = os.path.join(self.save_dir.get(), "文本语音.mp3")            asyncio.run(self.tts(text, out))            self.log("✅ 文本语音生成完成")            messagebox.showinfo("完成""语音已生成")            os.startfile(out)except Exception as e:            self.log(f"❌ 生成失败:{str(e)}")# 导入TXT文本文件defimport_txt(self):        p = filedialog.askopenfilename(filetypes=[("TXT""*.txt")])if p:with open(p, "r", encoding="utf-8"as f:                self.text_input.delete("1.0", tk.END)                self.text_input.insert(tk.END, f.read())            self.log(f"已导入:{os.path.basename(p)}")# 启动工具主程序if __name__ == "__main__":    root = tk.Tk()    AudioConverterApp(root)    root.mainloop()

关键知识点:

  • async/await异步编程:提升语音合成速度,避免阻塞;
  • threading多线程:PPT合成时界面不卡顿,用户体验更佳;
  • 双重try-except:极致容错,失败自动重试,降低报错率;
  • python-pptx库:精准解析PPT文本,兼容所有PPTX文件;
  • os.startfile():合成后自动打开文件/文件夹,操作更便捷。

三、知识点总结

这款全能语音合成工具,核心用到了5大类Python知识点,新手学习后能快速掌握GUI开发、异步编程、文件操作、异常处理等核心技能:

  1. GUI可视化开发:Tkinter+tttk实现高颜值界面,自定义样式、交互控件、布局管理;
  2. 第三方库应用edge-tts实现高清语音合成,python-pptx解析PPT文件;
  3. 异步+多线程编程:异步合成提升效率,多线程避免界面卡顿;
  4. 文件系统操作:路径管理、文件夹创建、文件读取/写入、格式兼容;
  5. 异常容错处理:主动捕获异常、自动修复参数、友好提示用户,提升工具稳定性。

四、拓展场景 + 测试步骤

1. 拓展应用场景

这款工具的适用性极强,几乎覆盖所有语音合成需求,可直接拓展使用:

  • 教育行业:老师将课件PPT转为语音,制作有声课件、线上课程;
  • 自媒体创作:快速生成视频配音、公众号音频、电台文案;
  • 职场办公:会议纪要、工作报告转语音,通勤时收听;
  • 个人使用:小说、文章转音频,解放双眼;
  • 二次开发:新增音色库、支持PDF/Word文件、打包成exe可执行文件。

2. 完整测试步骤

  1. 运行工具:直接复制代码到Python文件(如voice.py),双击运行,自动安装依赖;
  2. 基础设置:选择音色、调节音量和语速,输入预听文本,点击【预听】测试效果;
  3. PPT转语音测试:点击【选择PPT】,选中PPTX文件,点击【开始转换PPT】,等待逐页生成;
  4. 文本转语音测试:在文本框输入内容/导入TXT文件,点击【生成语音】;
  5. 查看结果:生成完成后自动打开输出目录,检查MP3音频是否正常播放。

3. 常见问题解决

  • 合成失败:切换默认音色,检查网络(edge-tts需要联网);
  • PPT无法解析:确保文件为.pptx格式,非加密文件;
  • 界面乱码:系统安装微软雅黑字体,或修改代码中的字体设置。

总结

这款Python语音合成工具,完美兼顾了颜值、功能、稳定性、易用性,从依赖安装到界面操作,从核心合成到异常处理,全程为零基础用户量身打造,代码结构清晰、注释详细,既能直接使用,也能作为Python学习项目深入研究。

不管你是想要高效生成语音的普通用户,还是想要学习Python实战开发的初学者,这款工具都能满足你的需求!赶紧复制代码运行起来,解锁一站式语音合成新体验吧!

下载地址

通过网盘分享的文件:语言转换小工具.exe

链接: https://pan.baidu.com/s/1mvaDJukBfeQzXtG-FsS7zw?pwd=vufd 提取码: vufd

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-05 10:00:18 HTTP/2.0 GET : https://h.sjds.net/a/499520.html
  2. 运行时间 : 0.076055s [ 吞吐率:13.15req/s ] 内存消耗:4,766.79kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c9d8c780db1ebd5f7b45f48c93aeb638
  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.000373s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000645s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000288s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000280s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000593s ]
  6. SELECT * FROM `set` [ RunTime:0.000224s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000577s ]
  8. SELECT * FROM `article` WHERE `id` = 499520 LIMIT 1 [ RunTime:0.000549s ]
  9. UPDATE `article` SET `lasttime` = 1777946418 WHERE `id` = 499520 [ RunTime:0.001258s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000303s ]
  11. SELECT * FROM `article` WHERE `id` < 499520 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000445s ]
  12. SELECT * FROM `article` WHERE `id` > 499520 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000388s ]
  13. SELECT * FROM `article` WHERE `id` < 499520 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000661s ]
  14. SELECT * FROM `article` WHERE `id` < 499520 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000733s ]
  15. SELECT * FROM `article` WHERE `id` < 499520 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000799s ]
0.077663s