我创建了一个链接到finish.php的按钮。它应该删除安装程序目录。问题是它在第一次尝试时失败了,但是会在后续重新加载页面时起作用:
function Delete($path){
if (is_dir($path) === true){
$files = array_diff(scandir($path), array('.', '..'));
foreach ($files as $file){
Delete(realpath($path) . '/' . $file);
}
return rmdir($path);
}else if (is_file($path) === true){
return unlink($path);
}
return false;
}
Delete('installer');
$filename = '../admin/installer/';
if (file_exists($filename)) { Delete('installer'); } else {header("Location: index.php");}
答案 0 :(得分:1)
我认为您的删除功能不稳定。
您可以使用此功能删除文件夹,删除所有文件和文件夹:
public static function deleteDir($dirPath) {
if (! is_dir($dirPath)) {
throw new InvalidArgumentException("$dirPath must be a directory");
}
if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') {
$dirPath .= '/';
}
$files = glob($dirPath . '*', GLOB_MARK);
foreach ($files as $file) {
if (is_dir($file)) {
self::deleteDir($file);
} else {
unlink($file);
}
}
rmdir($dirPath);
}