【PHP】 指定ディレクトリ(フォルダ)をサブディレクトリを含めた中身ごと削除する自作関数

PHPで中身やサブフォルダごとディレクトリを削除したい場合、組み込み関数の rmdir では出来ない。

何故かというと、
ディレクトリを削除できる組み込み関数のrmdirは、指定したディレクトリが空でなくては削除できないため。
非常に使いづらい関数です。

Windowsのエクスプローラのように、中身やサブフォルダがあっても問答無用に削除するための関数を作ったので
メモ代わりに置いておきます。
再帰関数です。

説明・使い方など

  1. まずはユーザー定義関数を定義します (行番号:1~26)
    1. 今回は関数名を「delete_dir」、渡される値(引数)を「$path」とします (行番号:1)
    2. コメント通りですが、$pathにスラッシュがあれば rtrim で除去します (行番号:4)
    3. glob関数で$pathの中身をリスト化します (行番号:7)
    4. foreach関数でリスト化した内容をループ処理していきます (行番号:9)
    5. is_dirで対象がディレクトリかどうかチェックします (行番号:11)
    6. 対象がディレクトリだった場合、この関数(delete_dir)を再帰呼出しします (行番号:12)
    7. 対象がファイルだった(ディレクトリではない)場合、unlink関数で削除します (行番号:15)
    8. 再度glob関数で$pathの中身を取得します (行番号:20)
    9. $pathの中身が空であれば、rmdir関数でディレクトリを削除して処理を終了させます (行番号:22~23)
    10. ユーザー関数の定義はこれで完了です
  2. 実際に関数 delete_dir を使用します
  3. 削除したいディレクトリを絶対パスで指定します (行番号:28)
  4. delete_dirに上記の絶対パスは渡して実行します (行番号:29)

投稿者プロフィール

黒河
黒河
PHPによるWebアプリ開発・コーディング(HTML・CSS)、音楽制作をやってる人。
主にPHPとコーディング(HTML・CSS)・音楽制作関連についての記事をメインで書いています。
紹介

PHPによるWebアプリ開発・コーディング(HTML・CSS)、音楽制作をやってる人。 主にPHPとコーディング(HTML・CSS)・音楽制作関連についての記事をメインで書いています。

タグ: , , , ,

カテゴリ:
  • ホームPHP > 【PHP】 指定ディレクトリ(フォルダ)をサブディレクトリを含めた中身ごと削除する自作関数
  • ホームPHP > PHPの実用的な関数 > 【PHP】 指定ディレクトリ(フォルダ)をサブディレクトリを含めた中身ごと削除する自作関数
  • ホームPHP > PHPの自作関数 > 【PHP】 指定ディレクトリ(フォルダ)をサブディレクトリを含めた中身ごと削除する自作関数
  • ホームPHP > PHP内部関数 > 【PHP】 指定ディレクトリ(フォルダ)をサブディレクトリを含めた中身ごと削除する自作関数

コメントを残す

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

*

2024年5月
« 9月    
 1234
567891011
12131415161718
19202122232425
262728293031  

アーカイブ

最近のコメント