PHP でディレクトリ以下を再帰的にファイル削除

RecursiveDirectoryIterator を使って削除。

<?php
$path = "/path/to/dir";

$items = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::CURRENT_AS_SELF),
    RecursiveIteratorIterator::CHILD_FIRST
);

foreach ($items as $item) {
    if ($item->isFile() || $item->isLink()) {
        unlink($item->getPathname());
    } elseif ($item->isDir() && !$item->isDot()) {
        rmdir($item->getPathname());
    }
}

rmdir($path);