PHP:取消链接目录中的所有文件,然后删除该目录

2022-08-30 13:44:16

我有一种方法可以使用RegExp或通配符搜索来快速删除文件夹中的所有文件,然后在PHP中删除该文件夹,而无需使用“exec”命令?我的服务器没有授予我使用该命令的权限。某种简单的循环就足够了。

我需要一些东西来完成以下语句背后的逻辑,但显然,这将是有效的:


$dir = "/home/dir"
unlink($dir . "/*"); # "*" being a match for all strings
rmdir($dir);


答案 1

使用 glob 查找与模式匹配的所有文件。

function recursiveRemoveDirectory($directory)
{
    foreach(glob("{$directory}/*") as $file)
    {
        if(is_dir($file)) { 
            recursiveRemoveDirectory($file);
        } else {
            unlink($file);
        }
    }
    rmdir($directory);
}

答案 2

使用 glob() 轻松循环访问目录以删除文件,然后您可以删除该目录。

foreach (glob($dir."/*.*") as $filename) {
    if (is_file($filename)) {
        unlink($filename);
    }
}
rmdir($dir);

推荐