当前位置:首页>python>养OpenClaw小龙虾翻车后,我用Python整了个自动剪视频神器

养OpenClaw小龙虾翻车后,我用Python整了个自动剪视频神器

  • 2026-03-27 03:44:26
养OpenClaw小龙虾翻车后,我用Python整了个自动剪视频神器

点击蓝字

关注我们

最近OpenClaw小龙虾火的一塌糊涂, 以其迅猛之势冲上Github星榜榜一(305k), 作者我也跟风整起来了。

由于出于安全性(OpenClaw助手拥有电脑的最高权限)考虑, 加上家里实在没有空闲的电脑养他, 所以, 就租了一个云服务器(偷偷告诉你, 5天内可以免费退, 发稿时我已退掉), 配了交互通道和大语言模型之后, 就可以开搞了。

我跟AI助手说, 我想每天自动生成短视频用于短视频帐号运营, 他一顿操作猛如虎, 然后告诉我弄好了, 可是我去服务器上查看, 感觉只弄了一半: 需要的文件路径弄好了, 但是方案里边提到的自动化脚本并没有生成, 我也是一顿懵啊, 搞不清楚为什么, 但是, 不到两分钟我就知道原因了: 大语言模型的免费的API Token用光了, 所以我安排给他的”活儿”他只干了一半!!!

所以, 我写这篇文章, 一方面告诉大家, 虽然”小龙虾”方便, 但是其实养起来, 是个无底洞, 因为虽然小龙虾开源免费,但是需要大量的大语言模型的API Token去养着, 这是整个工程成本最高的地方(市面上主流的模型, 百万Token的平均价格是5元, 基本上跟助手互动几次就用完了), 所以, 养”小龙虾”要慎重。

我个人认为, 目前OpenClaw比较适用于完全的小白和精通AI, 并且有较高商业需求的群。另一方面,想告诉大家, 如果你略懂软件, 小龙虾干的活, 你完全可以通过自己的能力, 自己把各项”Skills”通过其他方式实现, 然后组合起来。虽然慢一些, 也不是全自动的, 但是, 性价比高很多。

回到今天的主题, 前面虽然OpenClaw整了一个半成品给我, 但是, 我从他提供的方案中获取到了一个实现自动制作短视频的方法。我经过一步步优化, 输出了满足基本需求的脚本, 今天分享给朋友们。

下面我就给大家分享一下用Python的MoviePy库实现一个自动化生成短视频的脚本,实现从指定文件夹的图片中随机或指定选取若干张,添加文字标题和背景音乐,生成带有各种风格的视频。这个过程中遇到了环境配置、依赖缺失、参数调试、功能扩展等一系列问题,最终形成了一套相对完善的解决方案。

本文将详细记录整个开发过程、遇到的问题及解决方法,以及最终可批量处理的脚本,希望能为有类似需求的朋友提供参考。

一、环境搭建与依赖安装

1.1 Python 环境问题

在Ubuntu系统上首次尝试安装`moviepy`时,遇到了`externally-managed-environment`错误:

error: externally-managed-environment× This environment is externally managed╰─> To install Python packages system-wide, try apt install python3-xyz...

这是Debian/Ubuntu新版本引入的保护机制,阻止直接用pip修改系统Python环境。

解决方案: 

使用虚拟环境是最佳实践。执行以下bash命令创建并激活虚拟环境:

python3 -m venv venvsource venv/bin/activate

之后在虚拟环境中用pip安装所需库:

pip install moviepy imageio-ffmpeg

如果系统没有安装`python3-venv`,需要先安装:

sudo apt install python3-venv

1.2 ImageMagick安装与配置

MoviePy的`TextClip`依赖ImageMagick在后台渲染文字。首次运行脚本时报错:

OSError: MoviePy Error: creation of None failed because of the following error:convert-im6.q16: attempt to perform an operation not allowed by the security policy `@...

这是因为ImageMagick默认安全策略禁止了某些操作,需要修改配置文件。

步骤:

1.安装ImageMagick:

sudo apt install imagemagick

2.编辑策略文

`/etc/ImageMagick-6/policy.xml`(路径可能因版本而异)。

3.找到行`<policy domain="path" rights="none" pattern="@*" />`,将其注释掉:

<!-- <policy domain=“path“ rights=“none“ pattern=“@*“/> -->

4.保存退出后,ImageMagick即可被MoviePy正常调用。

1.3中文字体支持

生成中文文字时,如果未指定中文字体,会出现乱码或无法渲染。需要找到系统中的中文字体路径。

若系统有`fontconfig`,可用`fc-list :lang=zh`列出所有中文字体。

若无该命令,可安装`fontconfig`:

sudo apt install fontconfig

● 常见中文字体路径示例:

`/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc`

`/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf`。

在`TextClip`通过`font`参数指定:

text = TextClip(“文字说明“, fontsize=70, color='white', font='/path/to/your/chinese-font.ttf')text = TextClip(“文字说明“, fontsize=70, color='white', font='/path/to/your/chinese-font.ttf')

1.4 安装了 moviepy库仍然报错

明明已经安装了moviepy库,当时仍然报如下错误:

Traceback (most recent call last):  File “<string>“, line 1in <module>ModuleNotFoundError: No module named ‘moviepy.editor‘

这个问题是由于moviepy库版本不适用导致的,新版本2.2.1没有editor模块。解决方案是卸载moviepy,重新安装moviepy 1.0.3版本:

pip uninstall moviepy -ypip install moviepy==1.0.3

二、基础脚本编写

2.1 图片处理与视频合成

基础逻辑:

1.从`./images`目录读取所有`.jpg`和`.png`图片。

2.随机打乱,选取前N张(例如5张)。

3.每张图片生成一个`ImageClip`,设置固定时长(如5秒)。

4.为每个剪辑添加文字(TextClip),合成到图片上方。

5.将所有剪辑用`concatenate_videoclips`合并。

代码(Python)片段:

from moviepy.editor import *import osimport randomimages_dir = “./images“images = [os.path.join(images_dir, f) for f in os.listdir(images_dir) if f.endswith((‘.jpg‘, ‘.png‘))]random.shuffle(images)selected_images = images[:5]clips = [ImageClip(img, duration=5for img in selected_images]for i, clip in enumerate(clips):    text = TextClip(f“文字说明{i+1}“, fontsize=70, color=‘green‘,                    font=“/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc“)    text = text.set_pos(‘center‘).set_duration(clip.duration)    clip = CompositeVideoClip([clip, text])    clips[i] = clipfinal_clip = concatenate_videoclips(clips, method=“compose“)

2.2 音频处理

背景音乐可能时长与视频不匹配,需要自适应:

● 如果音频短于视频,循环拼接并截取所需长度。

● 如果音频长于视频,截断前video_duration秒。

实现代码(Python):

audio_clip = AudioFileClip(“./background.mp3“)audio_duration = audio_clip.durationvideo_duration = final_clip.durationif audio_duration < video_duration:    n_repeats = int(video_duration / audio_duration) + 1    audio_looped = concatenate_audioclips([audio_clip] * n_repeats)    final_audio = audio_looped.subclip(0, video_duration)elif audio_duration > video_duration:    final_audio = audio_clip.subclip(0, video_duration)else:    final_audio = audio_clipfinal_clip = final_clip.set_audio(final_audio)

2.3 输出视频

final_clip.write_videofile(“output.mp4“, codec=‘libx264‘, fps=24)

三、功能扩展与优化

3.1 为视频添加封面

有两种常见方式:

方法一: 在视频开头插入极短的封面帧

创建一个`ImageClip`,时长设为0.1秒,放到所有剪辑的最前面。这样视频的第一帧就是封面。

cover = ImageClip(“cover.jpg“, duration=0.1)all_clips = [cover] + clipsfinal_clip = concatenate_videoclips(all_clips, method=“compose“)

方法二: 嵌入封面元数据

使用FFmpeg的`-attach`功能,将图片作为附件嵌入MP4文件,不影响视频内容。需要调用外部命令:

import subprocesssubprocess.run([    ‘ffmpeg‘, ‘-i‘, ‘video.mp4‘, ‘-i‘, ‘cover.jpg‘,    ‘-map‘, ‘0‘, ‘-map‘, ‘1‘, ‘-c‘, ‘copy‘,    ‘-disposition:v:1‘, ‘attached_pic‘, ‘-y‘, ‘output_with_cover.mp4‘])

3.2 批量处理子目录

需求:`./images`下有多个子目录,每个子目录代表一组素材,需要分别为每个子目录生成一个独立的视频。

实现: 遍历所有子目录,对每个子目录调用生成视频的函数,输出文件名包含子目录名和时间戳,避免覆盖。

for item in os.listdir(images_dir):    subdir_path = os.path.join(images_dir, item)    if os.path.isdir(subdir_path):        create_video_for_subdir(subdir_path, item)

其中`create_video_for_subdir`内部逻辑与单个视频生成相同,只是输入路径改为子目录,输出文件名加上子目录名。

3.3 处理图片数量不足的情况

脚本中通过切片`images[:10]`选取图片,当子目录图片少于10张时,切片会自动取全部,不会报错。但若目录为空,需要跳过:

ifnot images:    print(f“子目录{subdir_name}中没有图片, 跳过“)    return

四、常见问题与排查

4.1 `from moviepy.editor import *`失败

现象: 明明用pip安装了moviepy,但导入时报`ModuleNotFoundError`

原因: 当前Python环境与安装moviepy的环境不一致。可能是多个Python版本混用,或虚拟环境未激活。

解决: 检查`which python`和`pip show moviepy`的Location是否匹配,确认虚拟环境已激活。

4.2 视频只有音频没有画面

现象:生成的视频能听到声音,但画面黑屏或静止。

原因:

1. 图片路径错误或图片损坏,导致`ImageClip` 创建失败。

2.`TextClip`因ImageMagick配置问题失败,但未抛出异常(MoviePy有时静默失败)。

3. 合成时剪辑尺寸不一致,导致最终剪辑尺寸为 0。

解决:

● 打印`len(images)`确认图片数量。

● 单独测试`ImageClip`和`TextClip`,检查能否生成临时文件。

● 修改ImageMagick安全策略(见1.2节)。

4.3 文字渲染乱码或空白

原因: 未指定中文字体,或指定的字体不支持中文。

解决: 使用`fc-list :lang=zh`查找系统已有中文字体,在`font`参数中指定路径。

4.4 视频时长与音频不匹配

现象: 视频播放一半突然无声或声音提前结束。

解决: 采用2.2节的动态音频长度调整逻辑,确保音频与视频严格同步。

4.5 性能问题: 视频生成慢

● 如果图片分辨率很大,`ImageClip`处理会非常耗时,建议先统一缩放图片尺寸。

● 使用`resize`方法: 

`clip=ImageClip(img).resize(height=480)`

五、最终脚本示例

以下是一个完整的脚本,支持批量处理子目录、自动音频适配、封面插入(方法一),并包含详细注释:

import osimport randomimport timefrom moviepy.editor import *def create_video_for_subdir(subdir_path, subdir_name):    “““    为指定的子目录生成视频    “““    # 获取该子目录下的所有图片    images = [os.path.join(subdir_path, f) for f in os.listdir(subdir_path)              if f.lower().endswith((‘.jpg‘, ‘.png‘))]    ifnot images:        print(f“子目录{subdir_name}中没有图片,跳过“)        return    # random.shuffle(images) # 可选, 随机使用列表中的图片    # 可以选择限制图片数量, 例如最多10张, 可根据需要调整    selected_images = images[:15]  # 取前 15 张    print(f“子目录{subdir_name}: 找到{len(images)}张图片, 选择前{len(selected_images)}张“)    # 创建图片剪辑    clips = [ImageClip(img, duration=2for img in selected_images]    # print(TextClip.list(‘color‘))    # 添加文字    for i, clip in enumerate(clips):        text = TextClip(            f“文字说明文案“,  # 这里可以改为 f“{subdir_name}-{i+1}“ 或其他            fontsize=35,            color=‘yellow‘,            bg_color=‘black‘,            # font=“Arial“,  # 请根据需要设置字体            font=“/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc“,            method=‘caption‘,            align=‘East‘,        )        text = text.set_pos((‘right‘, ‘top‘)).set_duration(clip.duration)        clip = CompositeVideoClip([clip, text])        clips[i] = clip    # 合并视频片段    final_clip = concatenate_videoclips(clips, method=“compose“)    video_duration = final_clip.duration    print(f“子目录{subdir_name}: 视频总时长: {video_duration:.2f} 秒“)    # 处理音频    audio_path = “./Honor.mp3“  # 背景音乐, 请确保路径正确    try:        audio_clip = AudioFileClip(audio_path)    except Exception as e:        print(f“音频文件加载失败: {e}“)        return    audio_duration = audio_clip.duration    print(f“原始音频时长: {audio_duration:.2f} 秒“)    if audio_duration < video_duration:        # 音频太短: 重复拼接        print(“音频太短,进行循环拼接…“)        n_repeats = int(video_duration / audio_duration) + 1        audio_looped = concatenate_audioclips([audio_clip] * n_repeats)        final_audio = audio_looped.subclip(0, video_duration)    elif audio_duration > video_duration:        # 音频太长: 截断        print(“音频太长,进行截断…“)        final_audio = audio_clip.subclip(0, video_duration)    else:        final_audio = audio_clip    final_clip = final_clip.set_audio(final_audio)    # 输出视频,文件名包含子目录名和时间戳    output_path = “./videos“    ifnot os.path.exists(output_path):        os.makedirs(output_path)    output_filename = f“{output_path}/output_{subdir_name}_{time.time()}.mp4“    final_clip.write_videofile(output_filename, codec=‘libx264‘, fps=24)    print(f“子目录{subdir_name}: 视频已保存至 {output_filename}“)# 主程序if __name__ == “__main__“:    images_dir = “./images“  # 主目录    # 确保images_dir存在    ifnot os.path.isdir(images_dir):        print(f“目录 {images_dir} 不存在“)        exit(1)    # 遍历 images_dir 下的所有子目录    for item in os.listdir(images_dir):        subdir_path = os.path.join(images_dir, item)        if os.path.isdir(subdir_path):            print(f“\n处理子目录: {item}“)            create_video_for_subdir(subdir_path, item)        else:            print(f“跳过非目录项: {item}“)

六、注意事项总结

1.环境隔离:始终在虚拟环境中安装Python包,避免污染系统环境。

2.ImageMagick策略:

修改`/etc/ImageMagick-*/policy.xml`是 TextClip正常工作的关键。

3.中文字体:务必指定正确的字体路径,否则文字无法显示。

4.文本位置:每页图片中嵌入的文本的位置可以通过set_pos((‘right‘, ‘top‘))设置,参数可以是“center“这样的值,也可以是(‘right‘, ‘top‘)这样的元组。

5.音频路径:确保音频文件存在且格式受支持 (mp3, wav 等)。

6.图片格式:支持`.jpg`和`.png`,其他格式需修改扩展名判断。

7.视频尺寸:如果图片尺寸差异大,建议统一缩放,否则合成视频可能因尺寸不兼容而报错。

8.性能:图片数量多或分辨率高时,生成视频耗时较长,可考虑先压缩图片或降低帧率。

9.文件命名:添加时间戳避免覆盖,批量处理时使用子目录名区分。

七、结语

通过这次实践,不仅掌握了MoviePy的基本用法,也学会了如何解决Linux环境下常见的依赖问题,并扩展了脚本的批量处理能力。希望这篇文章能帮助读者快速上手MoviePy,并顺利生成自己的短视频。如果你在实践过程中遇到其他问题,欢迎交流讨论!

E n d

声明:本文为51Testing软件测试网无量欢翁用户投稿内容,该用户投稿时已经承诺独立承担涉及知识产权的相关法律责任,并且已经向51Testing承诺此文并无抄袭内容。发布本文的用途仅仅为学习交流,不做任何商用,未经授权请勿转载,否则作者和51Testing有权追究责任。如果您发现本公众号中有涉嫌抄袭的内容,欢迎发送邮件至:editor@51testing.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 13:04:20 HTTP/2.0 GET : https://f.mffb.com.cn/a/480686.html
  2. 运行时间 : 0.086372s [ 吞吐率:11.58req/s ] 内存消耗:4,781.62kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=57780918392780f324357f218d26ae9d
  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.000553s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000708s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000333s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000293s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000527s ]
  6. SELECT * FROM `set` [ RunTime:0.000236s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000558s ]
  8. SELECT * FROM `article` WHERE `id` = 480686 LIMIT 1 [ RunTime:0.000569s ]
  9. UPDATE `article` SET `lasttime` = 1774587860 WHERE `id` = 480686 [ RunTime:0.002277s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000253s ]
  11. SELECT * FROM `article` WHERE `id` < 480686 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000498s ]
  12. SELECT * FROM `article` WHERE `id` > 480686 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000460s ]
  13. SELECT * FROM `article` WHERE `id` < 480686 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000981s ]
  14. SELECT * FROM `article` WHERE `id` < 480686 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001197s ]
  15. SELECT * FROM `article` WHERE `id` < 480686 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006635s ]
0.088019s