PHPでディレクトリを空の場合のみ削除する方法


  1. rmdir関数を使用する方法: rmdir関数は指定したディレクトリを削除する関数です。しかし、ディレクトリが空でない場合にはエラーが発生します。このエラーをキャッチして、ディレクトリが空である場合のみ削除することができます。
$directory = 'path/to/directory';
if (is_dir($directory)) {
    if (count(scandir($directory)) == 2) { // ディレクトリ内には '.' と '..' のみ存在する場合
        rmdir($directory);
    } else {
        echo "ディレクトリが空ではありません。";
    }
} else {
    echo "指定されたディレクトリが存在しません。";
}
  1. glob関数を使用する方法: glob関数を使用すると、指定したパターンに一致するファイルやディレクトリのリストを取得できます。この方法では、ディレクトリ内のファイルやサブディレクトリの数を数えることができます。
$directory = 'path/to/directory';
if (is_dir($directory)) {
    $fileCount = count(glob($directory . '/*'));
    if ($fileCount == 0) {
        rmdir($directory);
    } else {
        echo "ディレクトリが空ではありません。";
    }
} else {
    echo "指定されたディレクトリが存在しません。";
}

これらのコード例は、指定したディレクトリが空であるかどうかを確認し、空であれば削除する方法を示しています。例外処理を追加することで、エラーメッセージを表示したり、処理をカスタマイズしたりすることもできます。

以上が、PHPでディレクトリを空の場合のみ削除する方法です。