-
rmdir関数を使用する方法:
<?php $directory = 'path/to/directory'; if (is_dir($directory)) { $files = array_diff(scandir($directory), array('.', '..')); foreach ($files as $file) { unlink("$directory/$file"); } rmdir($directory); echo "ディレクトリを削除しました。"; } else { echo "ディレクトリが存在しません。"; } ?>
この方法では、まず
is_dir
関数を使用してディレクトリが存在するかどうかを確認します。存在する場合は、scandir
関数を使用してディレクトリ内のファイルとディレクトリのリストを取得し、.
と..
を除外します。その後、unlink
関数を使用してディレクトリ内のすべてのファイルを削除し、最後にrmdir
関数でディレクトリ自体を削除します。 -
RecursiveIteratorIteratorを使用する方法:
<?php function deleteDirectory($directory) { if (!is_dir($directory)) { echo "ディレクトリが存在しません。"; return; } $iterator = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($directory), RecursiveIteratorIterator::CHILD_FIRST ); foreach ($iterator as $file) { if ($file->isDir()) { rmdir($file->getRealPath()); } else { unlink($file->getRealPath()); } } rmdir($directory); echo "ディレクトリを削除しました。"; } $directory = 'path/to/directory'; deleteDirectory($directory); ?>
この方法では、再帰的なイテレーションを行うために
RecursiveIteratorIterator
クラスを使用します。ディレクトリ内のすべてのファイルとディレクトリを対象にし、isDir
メソッドを使用して判定します。ファイルであればunlink
関数を、ディレクトリであればrmdir
関数を使用して削除します。最後に、元のディレクトリ自体をrmdir
関数で削除します。
上記の方法を使用することで、PHPでディレクトリを削除することができます。ディレクトリが存在しない場合やアクセス権限の問題がある場合にはエラーメッセージが表示されます。適切なエラーハンドリングを行い、処理の安全性を確保してください。