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 に答える