[PHP] ファイルがあるフォルダも問答無用で削除する方法

PHPを使用してフォルダを削除するにはrmdirを使用すればよいが、中にファイルがあるとrmdirでは削除できない

またフォルダの中にあるフォルダも削除できないため、指定フォルダにファイルやフォルダがあっても再帰的に削除するには以下の通りに実装する

$dir = "削除したいフォルダパス";
remove_directory($dir);

function remove_directory($dir) {
    $files = array_diff(scandir($dir), array('.','..'));
    foreach ($files as $file) {
        // ファイルかディレクトリによって処理を分ける
        if (is_dir("$dir/$file")) {
            // ディレクトリなら再度同じ関数を呼び出す
            remove_directory("$dir/$file");
        } else {
            // ファイルなら削除
            unlink("$dir/$file");
        }
    }
    // 指定したディレクトリを削除
    return rmdir($dir);
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です