You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP按指定扩展名过滤、按修改时间删除文件代码未生效问题求助

代码修复方案

核心错误点

filemtime()仅支持传入单个文件的路径字符串,你代码中直接将glob()返回的文件路径数组作为参数传入,会直接返回布尔值false,时间比较逻辑完全无法正常执行。

修复后代码

// 匹配指定目录下的.mobileconfig文件
$files = glob('./generated/*.mobileconfig');
// 预定义1天的秒数、当前时间,避免循环内重复计算
$expire_threshold = 24 * 3600;
$current_time = time();

foreach($files as $file){
    // 跳过非普通文件
    if(!is_file($file)){
        continue;
    }
    // 单独获取当前遍历文件的最后修改时间
    $file_mtime = filemtime($file);
    // 时间校验通过后执行删除
    if($file_mtime && ($current_time - $file_mtime) > $expire_threshold) {
        unlink($file);
    }
}

优化说明

  • 将filemtime()调用移到循环内部,每次针对当前遍历的单个文件读取修改时间
  • 提前计算公共时间参数,减少循环内重复运算,提升执行效率
  • 增加filemtime()返回值校验,避免文件无权限、被占用等异常场景引发报错

内容的提问来源于stack exchange,提问作者josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:24:00