【PHP8.x】rmdir関数の使い方

作成日: 更新日:

rmdir関数は、指定されたパスにある空のディレクトリ(フォルダ)を削除する関数です。この関数は、ファイルシステムを操作する際に、不要になったディレクトリをプログラムから削除するために利用されます。

rmdir関数を使用する際は、削除したいディレクトリのパスを文字列として引数に指定します。例えば、'path/to/empty_directory'のように記述します。指定されたディレクトリが正常に削除された場合、この関数はブール値のtrueを返します。しかし、何らかの理由で削除に失敗した場合はfalseを返します。失敗する主な理由としては、指定されたパスが存在しない、ディレクトリが空ではない、またはスクリプトにそのディレクトリを削除する適切な権限がない、などが挙げられます。

特に重要な点として、rmdir関数は空のディレクトリしか削除できません。もし削除しようとしているディレクトリ内にファイルやサブディレクトリが存在する場合、rmdir関数は失敗し、falseを返します。したがって、ディレクトリとその中のすべてのコンテンツを完全に削除したい場合は、まずそのディレクトリ内のすべてのファイルやサブディレクトリを再帰的に削除してから、最後にrmdir関数を使用して空になったディレクトリ自体を削除する必要があります。また、スクリプトがディレクトリを削除するためには、実行環境におけるファイルシステムへの書き込み権限が必要となるため、権限設定にも注意が必要です。関数がfalseを返した際には、PHPのエラーログを確認することで、失敗の原因を特定できます。

基本的な使い方

構文(syntax)

<?php
$directory_to_remove = 'my_empty_directory';

// rmdir関数の動作を示すため、まず一時的な空のディレクトリを作成します。
if (!is_dir($directory_to_remove)) {
    mkdir($directory_to_remove);
}

// rmdir関数を使用して、指定されたパスの空のディレクトリを削除します。
// 成功した場合はtrue、失敗した場合はfalseを返します。
$is_removed = rmdir($directory_to_remove);

if ($is_removed) {
    echo "ディレクトリ '{$directory_to_remove}' は正常に削除されました。\n";
} else {
    echo "ディレクトリ '{$directory_to_remove}' の削除に失敗しました。\n";
}

引数(parameters)

string $directory, ?resource $context = null

  • string $directory: 削除したいディレクトリのパスを指定します。
  • ?resource $context = null: ストリームコンテキストを指定します。指定しない場合は null が使用されます。

戻り値(return)

bool

指定されたディレクトリを削除する関数です。削除に成功した場合は true を、失敗した場合は false を返します。