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

时间:2013-10-02 13:21:18

标签: php html

我有这样的页面结构:

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: ../');
}

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

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

2 个答案:

答案 0 :(得分:4)

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 );  
    }
}
?>

答案 1 :(得分:2)

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

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

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