当前位置:首页>python>代码的诗意:用Python重现《黑客帝国》数字雨,再送你一场爱心流星雨

代码的诗意:用Python重现《黑客帝国》数字雨,再送你一场爱心流星雨

  • 2026-06-21 23:02:32
代码的诗意:用Python重现《黑客帝国》数字雨,再送你一场爱心流星雨

"代码不仅是工具,更是艺术。"


一、为什么《黑客帝国》的数字雨如此经典?

1999年,电影《黑客帝国》(The Matrix)上映,那个绿色数字从天而降的画面,成为了影史最经典的视觉符号之一。

1.1 超越时代的视觉美学

导演沃卓斯基姐妹创造的这个数字雨效果,不仅仅是一个简单的动画,它代表了:

  • • 虚拟与现实的边界:数字世界正在"渗透"现实
  • • 信息的洪流:我们生活在一个被数据包围的时代
  • • 赛博朋克的极致美学:高科技、低生活的视觉表达

1.2 为什么它如此迷人?

心理学家分析,数字雨效果之所以令人着迷,是因为它触发了人类的几种本能反应:

心理效应
解释
流动感
人类大脑对运动物体有天生的注意力偏好
神秘感
无法立即理解的符号激发好奇心
秩序中的混乱
有规律的下落,随机的字符,形成独特的美感
绿色的心理暗示
绿色与科技、未来、生命力相关联

1.3 数字雨的技术构成

从技术角度看,数字雨效果包含几个核心要素:

┌─────────────────────────────────────────┐│           数字雨效果构成要素              │├─────────────────────────────────────────┤│  1. 字符集:日文片假名、数字、字母        ││  2. 颜色:荧光绿渐变(亮→暗)            ││  3. 运动:垂直下落 + 随机速度            ││  4. 层次:多条独立的"雨滴轨迹"           ││  5. 透明度:尾迹渐隐效果                 │└─────────────────────────────────────────┘

二、用Python创造你的数字雨

现在,让我们用Python重现这个经典效果!不需要复杂的图形库,只需要一个终端就能运行。

2.1 基础版数字雨(终端版)

这是最简单的实现,直接在终端中运行:

"""《黑客帝国》数字雨效果 - 终端版作者:鹏哥数个数运行环境:Python 3.x"""import randomimport osimport time# 清屏函数def clear_screen():    os.system('cls' if os.name == 'nt' else 'clear')# 字符集:数字、字母、日文片假名CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" \        "アイウエオカキクケコサシスセソタチツテト" \        "ナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン"def matrix_rain_terminal(width=80, height=24, speed=0.05):    """    终端版数字雨    width: 终端宽度    height: 终端高度    speed: 刷新速度(秒)    """    # 初始化每列的位置    drops = [random.randint(-20, 0) for _ in range(width)]    try:        while True:            clear_screen()            # 生成每一行            for row in range(height):                line = ""                for col in range(width):                    if row == drops[col]:                        # 雨滴头部(最亮的字符)                        line += f"\033[1;32m{random.choice(CHARS)}\033[0m"                    elif drops[col] - 5 <= row < drops[col]:                        # 雨滴尾迹(较暗的字符)                        line += f"\033[0;32m{random.choice(CHARS)}\033[0m"                    else:                        line += " "                print(line)            # 更新雨滴位置            for i in range(width):                drops[i] += 1                if drops[i] > height + random.randint(0, 10):                    drops[i] = random.randint(-10, 0)            time.sleep(speed)    except KeyboardInterrupt:        clear_screen()        print("数字雨已停止")if __name__ == "__main__":    print("《黑客帝国》数字雨效果")    print("按 Ctrl+C 停止")    time.sleep(2)    matrix_rain_terminal()

运行效果预览:

    1          キ          5          A          9    0          ク          2          B          8    A          エ          1          C          7    2          オ          0          D          6    B          カ          A          E          5

2.2 进阶版数字雨(图形界面版)

如果你想要更炫酷的效果,可以使用 pygame 库:

"""《黑客帝国》数字雨效果 - Pygame图形版需要安装:pip install pygame"""import pygameimport random# 初始化pygamepygame.init()# 屏幕设置WIDTH, HEIGHT = 1200, 800screen = pygame.display.set_mode((WIDTH, HEIGHT))pygame.display.set_caption("Matrix Digital Rain - 黑客帝国数字雨")# 颜色定义BLACK = (0, 0, 0)GREEN_BRIGHT = (180, 255, 180)  # 亮绿色(头部)GREEN_NORMAL = (0, 255, 70)     # 正常绿色GREEN_DARK = (0, 100, 30)       # 暗绿色(尾迹)# 字体设置FONT_SIZE = 16font = pygame.font.SysFont("msmincho", FONT_SIZE, bold=True)# 字符集CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" \        "アイウエオカキクケコサシスセソタチツテト" \        "ナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン"class Drop:    """雨滴类"""    def __init__(self, x):        self.x = x        self.y = random.randint(-HEIGHT, 0)        self.speed = random.randint(3, 8)        self.length = random.randint(5, 20)        self.chars = [random.choice(CHARS) for _ in range(self.length)]        self.char_change = 0    def fall(self):        """下落"""        self.y += self.speed        # 随机更换字符        self.char_change += 1        if self.char_change % 3 == 0:            for i in range(len(self.chars)):                if random.random() < 0.3:  # 30%概率更换                    self.chars[i] = random.choice(CHARS)        # 重置位置        if self.y - self.length * FONT_SIZE > HEIGHT:            self.y = random.randint(-200, -50)            self.speed = random.randint(3, 8)            self.length = random.randint(5, 20)            self.chars = [random.choice(CHARS) for _ in range(self.length)]    def draw(self, screen):        """绘制"""        for i, char in enumerate(self.chars):            y_pos = self.y - i * FONT_SIZE            if 0 <= y_pos < HEIGHT:                # 头部最亮,尾迹渐暗                if i == 0:                    color = GREEN_BRIGHT                elif i < 3:                    color = GREEN_NORMAL                else:                    # 渐变暗                    darkness = min(255, i * 15)                    color = (0, max(100, 255 - darkness), max(30, 100 - darkness // 3))                text = font.render(char, True, color)                screen.blit(text, (self.x, y_pos))def main():    """主函数"""    # 创建雨滴列    columns = WIDTH // FONT_SIZE    drops = [Drop(x * FONT_SIZE) for x in range(columns)]    clock = pygame.time.Clock()    running = True    print("按 ESC 或关闭窗口退出")    while running:        for event in pygame.event.get():            if event.type == pygame.QUIT:                running = False            if event.type == pygame.KEYDOWN:                if event.key == pygame.K_ESCAPE:                    running = False        # 黑色背景(带轻微拖尾效果)        fade = pygame.Surface((WIDTH, HEIGHT))        fade.fill(BLACK)        fade.set_alpha(50)  # 透明度        screen.blit(fade, (0, 0))        # 更新和绘制雨滴        for drop in drops:            drop.fall()            drop.draw(screen)        pygame.display.flip()        clock.tick(30)  # 30帧/秒    pygame.quit()if __name__ == "__main__":    main()

安装依赖:

pip install pygame

2.3 代码解析

让我们拆解一下数字雨的核心原理:

┌─────────────────────────────────────────────────────────────┐│                    数字雨原理图解                             │├─────────────────────────────────────────────────────────────┤│                                                             ││   列1    列2    列3    列4    列5    列6                    ││    ↓      ↓      ↓      ↓      ↓      ↓                    ││    A      キ     5      B      9      オ  ← 雨滴头部(最亮) ││    2      ク     2      C      8      カ                    ││    B      エ     1      D      7      キ  ← 雨滴中部        ││    0      オ     0      E      6      ク                    ││           カ            F      5                            ││                  ↑                                          ││            雨滴尾迹(渐暗)                                  ││                                                             ││   每一列是一个独立的"雨滴"对象                               ││   - 有自己的下落速度                                        ││   - 有自己的字符序列                                        ││   - 到达底部后从顶部重新出现                                 │└─────────────────────────────────────────────────────────────┘

三、浪漫升级:下一场红色爱心雨

数字雨很酷,但如果是下爱心呢?让我们改造代码,创造一场浪漫的爱心流星雨!(有心的小伙伴,可以复现出来给自己女朋友惊喜!

3.1 爱心雨代码

"""爱心流星雨效果用Python创造浪漫"""import pygameimport randomimport mathpygame.init()# 屏幕设置WIDTH, HEIGHT = 1000, 700screen = pygame.display.set_mode((WIDTH, HEIGHT))pygame.display.set_caption("❤️ 爱心流星雨 ❤️")# 颜色BLACK = (10, 10, 20)RED_BRIGHT = (255, 100, 150)RED_NORMAL = (255, 50, 100)RED_DARK = (150, 30, 60)PINK = (255, 182, 193)# 字体FONT_SIZE = 20font = pygame.font.SysFont("simhei", FONT_SIZE, bold=True)# 爱心符号集合HEARTS = ["❤", "♥", "💕", "💖", "💗", "💓", "💝", "♡"]class HeartDrop:    """爱心雨滴"""    def __init__(self, x):        self.x = x        self.y = random.randint(-HEIGHT, -50)        self.speed = random.uniform(2, 6)        self.size = random.randint(14, 24)        self.heart = random.choice(HEARTS)        self.sway = random.uniform(0, 2 * math.pi)  # 摆动相位        self.sway_speed = random.uniform(0.02, 0.05)        self.sway_amount = random.uniform(0, 30)        self.original_x = x        self.rotation = 0        self.rotation_speed = random.uniform(-2, 2)        self.opacity = 255        self.fade_speed = random.uniform(0.5, 2)    def fall(self):        """下落并摆动"""        self.y += self.speed        self.sway += self.sway_speed        self.rotation += self.rotation_speed        # 左右摆动效果        self.x = self.original_x + math.sin(self.sway) * self.sway_amount        # 到达底部后重置        if self.y > HEIGHT + 50:            self.y = random.randint(-100, -50)            self.original_x = random.randint(50, WIDTH - 50)            self.x = self.original_x            self.speed = random.uniform(2, 6)            self.heart = random.choice(HEARTS)            self.opacity = 255    def draw(self, screen):        """绘制爱心"""        if 0 <= self.y < HEIGHT + 50:            # 根据位置调整颜色(上面亮,下面暗)            progress = self.y / HEIGHT            if progress < 0.3:                color = RED_BRIGHT            elif progress < 0.7:                color = RED_NORMAL            else:                # 渐隐效果                fade = max(0, 1 - (progress - 0.7) * 3)                color = (                    int(RED_DARK[0] + (RED_NORMAL[0] - RED_DARK[0]) * fade),                    int(RED_DARK[1] + (RED_NORMAL[1] - RED_DARK[1]) * fade),                    int(RED_DARK[2] + (RED_NORMAL[2] - RED_DARK[2]) * fade)                )            # 使用系统字体渲染爱心            heart_font = pygame.font.SysFont("simhei", self.size, bold=True)            text = heart_font.render(self.heart, True, color)            # 绘制            screen.blit(text, (int(self.x), int(self.y)))class Particle:    """粒子效果(闪烁的小星星)"""    def __init__(self):        self.x = random.randint(0, WIDTH)        self.y = random.randint(0, HEIGHT)        self.size = random.randint(1, 3)        self.life = random.randint(30, 100)        self.max_life = self.life        self.color = random.choice([PINK, (255, 255, 200), (200, 200, 255)])    def update(self):        self.life -= 1        if self.life <= 0:            self.__init__()    def draw(self, screen):        alpha = self.life / self.max_life        color = tuple(int(c * alpha) for c in self.color)        pygame.draw.circle(screen, color, (self.x, self.y), self.size)def draw_background_gradient():    """绘制渐变背景"""    for y in range(HEIGHT):        # 从深蓝到黑色的渐变        color_val = int(20 + (y / HEIGHT) * 10)        pygame.draw.line(screen, (color_val // 2, color_val // 3, color_val),                         (0, y), (WIDTH, y))def main():    """主函数"""    # 创建爱心雨滴    hearts = [HeartDrop(random.randint(50, WIDTH - 50)) for _ in range(60)]    # 创建背景粒子    particles = [Particle() for _ in range(50)]    clock = pygame.time.Clock()    running = True    # 标题文字    title_font = pygame.font.SysFont("simhei", 48, bold=True)    subtitle_font = pygame.font.SysFont("simhei", 24)    print("爱心流星雨运行中...")    print("按 ESC 或关闭窗口退出")    while running:        for event in pygame.event.get():            if event.type == pygame.QUIT:                running = False            if event.type == pygame.KEYDOWN:                if event.key == pygame.K_ESCAPE:                    running = False        # 绘制渐变背景        draw_background_gradient()        # 更新和绘制粒子        for particle in particles:            particle.update()            particle.draw(screen)        # 更新和绘制爱心        for heart in hearts:            heart.fall()            heart.draw(screen)        # 绘制标题        title = title_font.render("❤️ 爱心流星雨 ❤️", True, RED_BRIGHT)        title_rect = title.get_rect(center=(WIDTH // 2, 50))        # 标题阴影        title_shadow = title_font.render("❤️ 爱心流星雨 ❤️", True, (50, 20, 30))        screen.blit(title_shadow, (title_rect.x + 2, title_rect.y + 2))        screen.blit(title, title_rect)        # 绘制副标题        subtitle = subtitle_font.render("用Python创造的浪漫", True, PINK)        subtitle_rect = subtitle.get_rect(center=(WIDTH // 2, 100))        screen.blit(subtitle, subtitle_rect)        pygame.display.flip()        clock.tick(60)  # 60帧/秒    pygame.quit()if __name__ == "__main__":    main()

3.2 爱心雨效果特点

特性
说明
摆动下落
爱心不是直线下落,而是左右摇摆
大小变化
不同大小的爱心,增加层次感
颜色渐变
从上到下由亮红变为暗红
背景粒子
闪烁的小星星营造浪漫氛围
多种爱心
使用不同的爱心符号增加多样性

3.3 运行截图示意

        ❤️ 爱心流星雨 ❤️         用Python创造的浪漫         ❤      💕      💖       💗  💓    💝    ♥  ❤          ♡      ❤      💕        💖  💗    💓    💝           ♥      ♡      ❤         💕  💖    💗    💓            💝      ♥      ♡

四、制作绚丽的烟花

4.1 烟花绽放效果

"""烟花绽放效果节日庆典"""import pygameimport randomimport mathpygame.init()WIDTH, HEIGHT = 1000, 700screen = pygame.display.set_mode((WIDTH, HEIGHT))pygame.display.set_caption("🎆 烟花绽放 🎆")BLACK = (10, 10, 20)class Particle:    def __init__(self, x, y, color):        self.x = x        self.y = y        self.color = color        angle = random.uniform(0, 2 * math.pi)        speed = random.uniform(2, 8)        self.vx = math.cos(angle) * speed        self.vy = math.sin(angle) * speed        self.life = random.randint(40, 80)        self.max_life = self.life        self.size = random.randint(2, 5)    def update(self):        self.x += self.vx        self.y += self.vy        self.vy += 0.1  # 重力        self.life -= 1        return self.life > 0    def draw(self, screen):        alpha = self.life / self.max_life        color = tuple(int(c * alpha) for c in self.color)        pygame.draw.circle(screen, color, (int(self.x), int(self.y)), self.size)class Firework:    def __init__(self):        self.x = random.randint(100, WIDTH - 100)        self.y = HEIGHT        self.vy = random.uniform(-12, -15)        self.color = random.choice([            (255, 100, 100), (100, 255, 100), (100, 100, 255),            (255, 255, 100), (255, 100, 255), (100, 255, 255)        ])        self.exploded = False        self.particles = []    def update(self):        if not self.exploded:            self.y += self.vy            self.vy += 0.3            if self.vy >= 0:  # 到达顶点                self.explode()        else:            self.particles = [p for p in self.particles if p.update()]        return len(self.particles) > 0 or not self.exploded    def explode(self):        self.exploded = True        for _ in range(100):            self.particles.append(Particle(self.x, self.y, self.color))    def draw(self, screen):        if not self.exploded:            pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), 4)        for p in self.particles:            p.draw(screen)def main():    fireworks = []    clock = pygame.time.Clock()    running = True    frame_count = 0    while running:        for event in pygame.event.get():            if event.type == pygame.QUIT:                running = False            if event.type == pygame.KEYDOWN:                if event.key == pygame.K_SPACE:                    fireworks.append(Firework())        # 自动发射烟花        frame_count += 1        if frame_count % 60 == 0:  # 每秒发射一个            fireworks.append(Firework())        screen.fill(BLACK)        fireworks = [f for f in fireworks if f.update()]        for f in fireworks:            f.draw(screen)        pygame.display.flip()        clock.tick(60)    pygame.quit()if __name__ == "__main__":    main()

五、如何分享你的作品

5.1 保存为视频

"""将动画保存为视频文件需要安装:pip install opencv-python"""import cv2import numpy as npimport pygame# ... 你的绘制代码 ...# 设置视频写入器fourcc = cv2.VideoWriter_fourcc(*'mp4v')out = cv2.VideoWriter('matrix_rain.mp4', fourcc, 30.0, (WIDTH, HEIGHT))# 在主循环中while running:    # ... 绘制代码 ...    # 捕获帧    frame = pygame.surfarray.array3d(screen)    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)    frame = np.rot90(frame, 3)  # 旋转    frame = np.flip(frame, 1)   # 翻转    out.write(frame)out.release()

结语

从《黑客帝国》的数字雨到浪漫的爱心流星,代码可以创造出令人惊叹的视觉效果。这不仅仅是编程技术的展示,更是艺术与科技的完美结合。

💡 给初学者的建议

  1. 1. 先运行代码,看到效果
  2. 2. 修改参数,观察变化
  3. 3. 尝试添加自己的创意
  4. 4. 分享给朋友,获得反馈

代码的世界没有边界,你的想象力就是极限。


完整代码已开源,关注公众号「鹏哥数个数」,回复"数字雨"获取所有源码文件!

作者简介:鹏哥数个数,热爱用代码创造美好事物,相信编程不仅是技术,更是艺术。


本文首发于微信公众号「鹏哥数个数」,转载请注明出处。

特别致谢:《黑客帝国》创作者们。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 15:21:44 HTTP/2.0 GET : https://f.mffb.com.cn/a/487212.html
  2. 运行时间 : 0.179981s [ 吞吐率:5.56req/s ] 内存消耗:4,923.35kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=6c8164f8c8b233cfe88857aba09750b5
  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.000982s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001591s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000600s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000580s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001350s ]
  6. SELECT * FROM `set` [ RunTime:0.000509s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001460s ]
  8. SELECT * FROM `article` WHERE `id` = 487212 LIMIT 1 [ RunTime:0.005524s ]
  9. UPDATE `article` SET `lasttime` = 1783063304 WHERE `id` = 487212 [ RunTime:0.008063s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000587s ]
  11. SELECT * FROM `article` WHERE `id` < 487212 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.007037s ]
  12. SELECT * FROM `article` WHERE `id` > 487212 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004406s ]
  13. SELECT * FROM `article` WHERE `id` < 487212 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002878s ]
  14. SELECT * FROM `article` WHERE `id` < 487212 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003446s ]
  15. SELECT * FROM `article` WHERE `id` < 487212 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005815s ]
0.185364s