指定したディレクトリを削除する関数

複数ファイルのダウンロード機能作成時に、一時フォルダを作成し、そこにファイルを詰め込んで まとめてダウンロードさせることがあった。 その際、最後に一時フォルダを削除するときに関数1つ作っておいたら、とても便利だったので、 ここに記しておく

function remove_directory($dir)
{
  // 指定されたディレクトリ内の一覧を取得
  $res = glob($dir . '/*');
  // 一覧をループ
  foreach ($res as $f) {
    // is_file() を使ってファイルかどうかを判定
    if (is_file($f)) {
      // ファイルならそのまま削除
      unlink($f);
    } else {
      // ディレクトリの場合(ファイルでない場合)は再度remove_directory()を実行
      remove_directory($f);
    }
  }
  // 中身を削除した後、本体削除
  rmdir($dir);
}