PHPでサーバー上のディレクトリを削除する方法

今回はPHPでサーバー上の不要になったディレクトリを削除する方法をご紹介します。

WindowsやMacでの操作だったら選択して削除ボタンをポンと押せば一発ですが、PHPではディレクトリ内にファイルがあると削除出来なくてなかなか曲者です!

そんな場合でも削除できる方法も含めてやってみましょう。

PHPでサーバー上のディレクトリを削除する方法

ディレクトリの削除は、rmdir() を使います。

rmdir($ディレクトリ);

$ディレクトリは、ディレクトリのパスです。

 

のように書くと、このPHPファイルと同じディレクトリ内にある dir というディレクトリが削除されます。

 

しかし、ちょっと扱いが難しいのが、中にファイルが存在すると削除出来ないということです。

削除するディレクトリの中にディレクトリがある場合も同様に削除できません。

 

ディレクトリを削除するためには、その中のファイルやディレクトリを全て削除する必要があります。

指定したディレクトリ内を一括削除するなら再起的なやり方

ということで、削除対象のディレクトリ内にあるディレクトリとファイルを全て削除するサンプルを作成してみました。

≫ PHPで指定したディレクトリ内のファイル名とディレクトリ名一覧取得

上の記事でサブディレクトリも含めてファイル名とディレクトリ名を一覧表示するサンプルを作りました。

それを使ってディレクトリ内のファイルとディレクトリを全て削除して元のディレクトリを削除する関数にしました。

案外うまく動きましたが、コピーする際は自己責任でお願いします。

一発で強制的にディレクトリを削除する方法

上では再帰的?とかいうちょっとややこしい方法のサンプルコードをご紹介しました。

しかし、実はもっと簡単な方法があります。

 

だって、Windowsの場合フォルダと選択してデリートボタン押せば中身も含めて全て削除できるでしょ?

たいていのWEBサービスはOSがLinuxだと思いますが、Linuxにも当然そういう機能(コマンド)はあります。

そのコマンドをPHPから実行すればOKです。

 

その場合は以下のように書きます。

rm は Linux のコマンドで削除をするときに使います。

-rf は、rmコマンドのオプションです。-rはディレクトリを削除するときに使います。-fはファイルを削除する際に確認されなくなります。ファイルが無かった場合に警告も出なくなります。

これだけで一発で削除できます。

まとめ

PHPでディレクトリを削除する場合は rmdir() を使う。

しかし、指定したディレクトリ内にファイルやディレクトリが存在する場合はエラーになります。

なのでディレクトリ内も綺麗に削除してから削除する必要があり、あまり使い勝手がいいとはいえません。

そんなときはOSの削除コマンドを実行して削除する方が簡単です。

コロナの影響でみんな大変だから俺もなんかできること

僕は福井県に住んでいるのですが、戦時中に福井大空襲にあい、その直後に大震災にあってボロボロになった話をおばあちゃんに聞きました。

それでも復活することができ、不死鳥の町と言われるようになりました。

先人達には心から感謝し尊敬します。

リーマンショック、東日本大震災、コロナと数十年に一度と言われる被害が立て続けに起きていますが、僕たちは強いです。

今は苦しいかもしれませんがきっと復活できます。

僕は低学歴ですし小さな小さな粒でしかないですが、プログラミングに関しては必死に勉強し15年以上ごはんにありつけています。

プログラミングを勉強している人の役に立てるほどのスキルはあると思っています。

なので1人でもんもんと悩んでいる若手のエンジニア向けに質問を受け付けることにします。

自宅で待機されている間もパソコンとインターネットがあればプログラミングの勉強はできます。

  • PHP
  • SQL
  • HTML・CSS
  • jQuery

とは言ってもいきなり答えを聞いていたのではなかなか成長できないと思うのです。

なので質問の際には次のことをご連携ください。

  • 何をやりたいか
  • どんなことを調べたか、検索キーワードと参考にしたページのURL
  • 調べた結果どこが分からないか
  • できるなら試したコード

メッセージいはとりあえずTwitterにでもください。

質問はこちら

すぐに返事できないかもしれませんがご了承ください。

コメントを残す

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

CAPTCHA