PHP的rmdir函数只能删除空文件夹,如果文件夹中有文件或子文件夹,则无法删除。为了删除非空文件夹,可以使用以下方法:
function deleteDirectory($dir) {
if (!file_exists($dir)) {
return true;
}
if (!is_dir($dir)) {
return unlink($dir);
}
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') {
continue;
}
if (!deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) {
return false;
}
}
return rmdir($dir);
}
// 使用方法
$dir = 'path_to_directory';
deleteDirectory($dir);
这段代码会递归地删除文件夹中的所有文件和子文件夹,然后再删除空文件夹本身。