tech.chakapoko.com
Home / PHP / ファイル操作

[PHP]ファイルやディレクトリを削除する

ファイルを削除する

ファイルを削除するには unlink 関数を使います。

次のコードはtest.txtというファイルを削除する例です。

<?php
unlink('test.txt');

ディレクトリを削除する

ディレクトリを削除するには rmdir 関数を使います。

<?php
rmdir('my_directory');

ただし、 rmdir 関数はディレクトリが空の時にしか使えません。

空ではないディレクトリを削除する

空ではないディレクトリを削除するには、まずディレクトリの中のファイルを全て削除してから rmdir 関数を呼び出す必要があります。

ディレクトリの中にまたディレクトリがあれば、さらにその中のファイルも先に削除しておく必要があります。

次のコードは空ではないディレクトリを削除する例です。

function rmdir_recursively($dir) {
    $dh = opendir($dir);
    if ($dh === false) {
        throw new Exception("Failed to open $dir");
    }

    while (true) {
        $file = readdir($dh);
        if ($file === false) {
            break;
        }
        if ($file === '.' || $file === '..') {
            continue;
        }

        $path = rtrim($dir, '/') . '/' . $file;
        if (is_dir($path)) {
            rmdir_recursively($path);
        } else {
            unlink($path);
        }
    }
    closedir($dh);
    rmdir($dir);
}