当前位置:首页>python>Python 自动分析岩石破坏过程:裂纹提取、扩展演化与损伤区域可视化(含代码)

Python 自动分析岩石破坏过程:裂纹提取、扩展演化与损伤区域可视化(含代码)

  • 2026-08-30 21:48:47
Python 自动分析岩石破坏过程:裂纹提取、扩展演化与损伤区域可视化(含代码)
案例代码见文末,感谢您关注PFC小姐姐,麻烦您多多对推文点赞、收藏及转发,并衷心希望您多多指教🙏,帮助PFC小姐姐进步提升。

引言

传统裂纹分析通常依赖人工观察破坏照片,或者通过软件手动标注裂纹位置。这种方式在裂纹数量较少时尚可满足需求,但面对复杂破裂过程时,人工统计往往存在效率低、主观性强以及难以进行连续阶段对比等问题。

随着数字图像处理技术的发展,利用 Python 可以将岩石破坏图像转化为可量化的裂纹数据。通过图像增强、阈值分割、形态学处理和骨架提取等方法,可以自动识别裂纹区域,并进一步计算裂纹长度、裂纹面积、裂纹方向以及损伤集中区域。本文以模拟岩石破坏过程图像为例,展示 Python 在裂纹自动分析中的应用流程。代码实现了从原始破坏图像输入,到裂纹提取、裂纹演化统计和损伤区域可视化的完整过程。该方法不仅适用于岩石试验照片,也可以用于 PFC/FDEM 模拟裂纹结果、混凝土破坏图像以及复合材料损伤分析。通过 Python 自动处理,可以快速建立从图像到裂纹参数的分析流程。

1、原始破坏图像与裂纹自动提取结果

图1展示了 Python 对岩石破坏图像进行裂纹识别的全过程。上面为原始破坏图像,可以观察到加载过程中形成的主裂纹和大量次生裂纹。中间为经过图像处理后的裂纹二值化结果,代码通过灰度增强、阈值分割和形态学操作,将裂纹区域从岩石基质中分离出来。下面为裂纹骨架提取结果,通过骨架化处理,将具有一定宽度的裂纹转换为单像素中心线。裂纹骨架相比原始裂纹图像更加适合进行定量分析。通过骨架数据,可以进一步计算裂纹总长度、裂纹数量、分支位置以及裂纹方向等参数。该图主要用于验证裂纹识别效果。在实际试验图像处理中,分割质量直接影响后续损伤参数计算。如果裂纹区域出现漏检或者误识别,最终得到的裂纹扩展规律会产生偏差。因此,在进行自动化分析时,需要先通过类似图1的结果检查算法是否准确捕捉主要破裂区域。

2、裂纹扩展过程与损伤演化规律

图2展示的是加载过程中裂纹结构随阶段变化的演化过程。随着加载阶段增加,岩石内部裂纹逐渐由局部萌生发展为贯通破坏。代码分别统计每个阶段的裂纹骨架长度、裂纹面积以及归一化损伤变量,并绘制对应的演化曲线。裂纹长度可以反映裂纹网络的发展程度;裂纹面积能够体现破坏区域的扩展范围;损伤变量则进一步描述材料内部完整性下降过程。从演化曲线中,可以观察裂纹发展的阶段性特征。加载初期,裂纹主要处于萌生阶段,增长速度较缓;随着应力持续增加,已有裂纹不断扩展,同时产生新的次生裂纹,裂纹指标快速增长;接近峰值破坏阶段后,裂纹逐渐形成贯通路径,材料进入明显失稳阶段。

    3、裂纹方向分布与损伤集中区域分析

    图3进一步分析裂纹的空间方向特征和局部损伤分布。左侧为裂纹方向玫瑰图,通过提取裂纹骨架的方向信息,统计不同方向裂纹出现的频率。该结果能够反映破坏过程中优势裂纹方向,例如剪切带方向、主裂纹扩展方向以及结构控制方向。右侧为裂纹密度热图,通过对裂纹区域进行空间平滑统计,将裂纹集中程度转换为连续分布场。颜色较深区域表示裂纹更加集中,可能对应局部损伤集中区、潜在破坏带或最终贯通区域。相比单独统计裂纹数量,方向分布和密度云图能够提供更多空间信息。裂纹并不是均匀随机产生,而通常受到加载方式、材料非均质性、初始缺陷和结构面控制。通过这种可视化方法,可以直观分析裂纹从局部损伤向整体破坏发展的空间演化过程。

    具体Python如下:

    import osimport numpy as npimport pandas as pdimport matplotlibmatplotlib.use("Agg")import matplotlib.pyplot as pltfrom scipy.ndimage import gaussian_filterfrom skimage import (    morphology,    filters,    measure,    exposure,    color)np.random.seed(2026)out_dir = "crack_damage_analysis_results"os.makedirs(out_dir, exist_ok=True)plt.rcParams["font.family"] = "Times New Roman"plt.rcParams["axes.unicode_minus"] = FalseH = 600W = 900# 生成模拟岩石破坏图像def generate_crack_image(stage):    img = np.ones((H, W))*0.65    # 岩石纹理    texture = gaussian_filter(        np.random.normal(0,1,(H,W)),        sigma=15    )    texture = texture / texture.std()    img += texture*0.05    crack = np.zeros((H,W),dtype=bool)    # 主剪切裂纹    length = 180 + stage*60    x0 = 120    y0 = 500    for i in range(length):        x = x0+i*2        y = int(            y0 -            0.55*i +            20*np.sin(i/30)        )        width = 1+stage        if (            5<y<H-5 and            5<x<W-5        ):            crack[                y-width:y+width,                x-width:x+width            ] = True    # 次生裂纹    n_branch = stage*3+2    for i in range(n_branch):        start_x = np.random.randint(            200,650        )        start_y = np.random.randint(            150,450        )        angle = np.random.uniform(            -1.5,1.5        )        for j in range(            80+stage*20        ):            x = int(                start_x+j*np.cos(angle)            )            y = int(                start_y+j*np.sin(angle)            )            if (                5<x<W-5 and                5<y<H-5            ):                crack[y-1:y+2,x-1:x+2]=True    crack = morphology.binary_dilation(        crack,        morphology.disk(stage)    )    img[crack]=0.15    img += np.random.normal(        0,        0.015,        img.shape    )    img=np.clip(        img,        0,        1    )    return img, crack# 2. 裂纹自动提取函数def crack_detection(img):    # 对比增强    img_eq = exposure.equalize_adapthist(        img,        clip_limit=0.03    )    # 裂纹暗区域    threshold = filters.threshold_otsu(        img_eq    )    crack_mask = img_eq < threshold*0.92    # 去噪    crack_mask = morphology.remove_small_objects(        crack_mask,        min_size=20    )    crack_mask = morphology.binary_closing(        crack_mask,        morphology.disk(2)    )    # 骨架    skeleton = morphology.skeletonize(        crack_mask    )    return crack_mask,skeleton# 图1 裂纹自动提取img, true_crack = generate_crack_image(    stage=5)crack_mask, skeleton = crack_detection(    img)fig,ax=plt.subplots(    1,3,    figsize=(15,5))ax[0].imshow(    img,    cmap="gray")ax[0].set_title(    "Original failure image")ax[1].imshow(    crack_mask,    cmap="gray")ax[1].set_title(    "Automatic crack extraction")overlay=np.dstack(    [        img,        img,        img    ])overlay[skeleton]=[    1,    0,    0]ax[2].imshow(    overlay)ax[2].set_title(    "Crack skeleton")for a in ax:    a.axis("off")plt.tight_layout()plt.savefig(    os.path.join(        out_dir,        "fig1_crack_extraction.png"    ),    dpi=500,    bbox_inches="tight")plt.close()# 图2 裂纹扩展演化stages=np.arange(    1,    7)lengths=[]areas=[]damage=[]for s in stages:    img_s, crack_s = generate_crack_image(        s    )    sk = morphology.skeletonize(        crack_s    )    lengths.append(        sk.sum()    )    areas.append(        crack_s.sum()    )    damage.append(        crack_s.sum()/(H*W)    )df=pd.DataFrame(    {        "stage":stages,        "crack_length":lengths,        "crack_area":areas,        "damage_variable":damage    })df.to_csv(    os.path.join(        out_dir,        "crack_evolution.csv"    ),    index=False)fig,ax=plt.subplots(    1,3,    figsize=(15,4.5))ax[0].plot(    stages,    lengths,    "-o",    linewidth=2)ax[0].set_title(    "Crack length evolution")ax[0].set_xlabel(    "Loading stage")ax[0].set_ylabel(    "Skeleton pixels")ax[1].plot(    stages,    areas,    "-o",    color="darkred",    linewidth=2)ax[1].set_title(    "Crack area evolution")ax[2].plot(    stages,    damage,    "-o",    color="purple",    linewidth=2)ax[2].set_title(    "Damage variable evolution")for a in ax:    a.grid(alpha=0.2)plt.tight_layout()plt.savefig(    os.path.join(        out_dir,        "fig2_crack_evolution.png"    ),    dpi=500,    bbox_inches="tight")plt.close()# 图3 裂纹方向 + 损伤热图label_img = measure.label(    skeleton)regions = measure.regionprops(    label_img)angles=[]for r in regions:    if r.area<10:        continue    angles.append(        np.degrees(            r.orientation        )    )angles=np.array(    angles)fig,ax=plt.subplots(    1,2,    figsize=(12,5))# --------方向玫瑰图--------theta=np.deg2rad(    angles)bins=np.linspace(    0,    np.pi,    19)hist,_=np.histogram(    theta,    bins)centers=(bins[:-1]+bins[1:])/2ax0=plt.subplot(    121,    polar=True)ax0.bar(    centers,    hist,    width=np.pi/18,    alpha=0.75)ax0.set_title(    "Crack orientation distribution")# --------裂纹密度热图--------density=gaussian_filter(    crack_mask.astype(float),    sigma=25)ax1=plt.subplot(    122)im=ax1.imshow(    density,    cmap="hot")ax1.set_title(    "Crack density map")ax1.axis("off")plt.colorbar(    im,    ax=ax1,    shrink=0.8)plt.tight_layout()plt.savefig(    os.path.join(        out_dir,        "fig3_crack_direction_damage.png"    ),    dpi=500,    bbox_inches="tight")plt.close()

    特别声明:

    以上代码与文案均为网上资料整合而成,仅供广大同行们参考学习,如有侵权请联系删除。

    如有其他需要,欢迎关注我的咸鱼号:pfc小姐姐

    最新文章

    随机文章

    基本 文件 流程 错误 SQL 调试
    1. 请求信息 : 2026-08-31 16:51:44 HTTP/2.0 GET : https://f.mffb.com.cn/a/512360.html
    2. 运行时间 : 0.114311s [ 吞吐率:8.75req/s ] 内存消耗:4,550.50kb 文件加载:140
    3. 缓存信息 : 0 reads,0 writes
    4. 会话信息 : SESSION_ID=a51674215f8383bdfc9d7919fd950791
    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.000845s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
    2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000889s ]
    3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000349s ]
    4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000242s ]
    5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000496s ]
    6. SELECT * FROM `set` [ RunTime:0.000211s ]
    7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000578s ]
    8. SELECT * FROM `article` WHERE `id` = 512360 LIMIT 1 [ RunTime:0.000523s ]
    9. UPDATE `article` SET `lasttime` = 1788166304 WHERE `id` = 512360 [ RunTime:0.007402s ]
    10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000260s ]
    11. SELECT * FROM `article` WHERE `id` < 512360 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000901s ]
    12. SELECT * FROM `article` WHERE `id` > 512360 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001182s ]
    13. SELECT * FROM `article` WHERE `id` < 512360 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.007865s ]
    14. SELECT * FROM `article` WHERE `id` < 512360 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005560s ]
    15. SELECT * FROM `article` WHERE `id` < 512360 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004385s ]
    0.117938s