删除指定目录下指定后缀的文件

//定时清除计划任务日志文件,避免占用太大磁盘空间
$folderpath = "/www/server/log";//要操作的目录
$deltype = array('log');
foreach ($deltype as $file_type) {
    clearn_file($folderpath, $file_type);
}


/**
 *@param $path文件夹绝对路径 $file_type待删除文件的后缀名
 *return void
 */
function clearn_file($path, $file_type = 'bak')
{
    //判断要清除的文件类型是否合格
    if (!preg_match('/^[a-zA-Z]{2,}$/', $file_type)) {
        return false;
    }
    //当前路径是否为文件夹或可读的文件
    if (!is_dir($path) || !is_readable($path)) {
        return false;
    }
    //遍历当前目录下所有文件
    $all_files = scandir($path);
    foreach ($all_files as $filename) {
        //跳过当前目录和上一级目录
        if (in_array($filename, array(".", ".."))) {
            continue;
        }
        //进入到$filename文件夹下
        $full_name = $path . '/' . $filename;
        //判断当前路径是否是一个文件夹,是则递归调用函数
        //否则判断文件类型,匹配则删除
        if (is_dir($full_name)) {
            clearn_file($full_name, $file_type);
        } else {
            preg_match("/(.*)\.$file_type/", $filename, $match);
            if (!empty($match[0][0])) {
                echo $full_name;
                echo '\n\n';
                unlink($full_name);
            }
        }
    }
}

多谢:网友

猜你喜欢

转载自blog.csdn.net/zhanjianjiu/article/details/81271001