2

我有这样的页面结构:

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

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

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

4

2 回答 2

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 );  
    }
}
?>
于 2013-10-02T13:27:52.570 回答
2

PHPrmdir函数仅适用于空目录。

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

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

于 2013-10-02T13:26:17.013 回答