删除父目录和所有子文件,然后重定向


Delete parent directory and all child files then redirect

我有一个这样的页面结构:

domain.com/index.php
domain.com/setup/index.php
domain.com/setup/setup.php

页面上有一个窗体/setup/index.php如下所示:

<form action="" method="post">
  <input type="submit" name="finishSubmit" value="Finish" />
</form>

提交该表单后,我希望删除目录/setup/及其子index.phpsetup.php。之后,我需要它重定向到domain.com/index.php

我尝试使用这样的rmdir

if (isset($_POST['finishSubmit'])) {
  rmdir('../setup');
  header ('location: ../');
}

要么我用错了,要么路径弄错了,但它不起作用。正确的方法是什么?

注意:我需要使用上述相对路径,因为我不知道域名。

rmdir()要求目录为空。您可以使用此功能删除文件夹中的文件,然后删除文件夹。

<?PHP
function delete_files($target) {
    if(is_dir($target)){
        $files = glob( $target . '*', GLOB_MARK );
        foreach( $files as $file )
        {
            delete_files( $file );      
        }
        rmdir( $target );
    } elseif(is_file($target)) {
        unlink( $target );  
    }
}
?>

PHP rmdir 函数仅适用于空目录。

在删除目录之前,您需要先删除index.php文件和其他文件。

参考: http://php.net/manual/en/function.rmdir.php