Symfonyのファイルシステム(コード)を使用できます:
// composer require symfony/filesystem
use Symfony\Component\Filesystem\Filesystem;
(new Filesystem)->remove($dir);
ただし、この方法では一部の複雑なディレクトリ構造を削除できなかったため、最初にそれを試して、正しく機能していることを確認する必要があります。
Windows固有の実装を使用して、上記のディレクトリ構造を削除できます。
$dir = strtr($dir, '/', '\\');
// quotes are important, otherwise one could
// delete "foo" instead of "foo bar"
system('RMDIR /S /Q "'.$dir.'"');
そして、完全を期すために、ここに私の古いコードを示します。
function xrmdir($dir) {
$items = scandir($dir);
foreach ($items as $item) {
if ($item === '.' || $item === '..') {
continue;
}
$path = $dir.'/'.$item;
if (is_dir($path)) {
xrmdir($path);
} else {
unlink($path);
}
}
rmdir($dir);
}