rmdir()
フォルダーにファイルが含まれている場合、関数は失敗します。次のような方法で、ディレクトリ内のすべてのファイルをループできます。
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') continue;
unlink($dir.DIRECTORY_SEPARATOR.$item);
}
rmdir($dir);
一気に消す方法ってありますか?
rmdir()
フォルダーにファイルが含まれている場合、関数は失敗します。次のような方法で、ディレクトリ内のすべてのファイルをループできます。
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') continue;
unlink($dir.DIRECTORY_SEPARATOR.$item);
}
rmdir($dir);
一気に消す方法ってありますか?
rrmdir()
-- ディレクトリを再帰的に削除します。
function rrmdir($dir) {
foreach(glob($dir . '/*') as $file) {
if(is_dir($file)) rrmdir($file); else unlink($file);
} rmdir($dir);
}
まあ、いつもある
system('/bin/rm -rf ' . escapeshellarg($dir));
可能な場合。
function delete_files($dir) {
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir")
delete_files($dir."/".$object);
else unlink ($dir."/".$object);
}
}
reset($objects);
rmdir($dir);
}
}
これを試して :
exec('rm -rf'.$user_dir);
lprent による php コメントにある安全で優れた機能の 1 つです。現在のディレクトリにあるシンボリック リンク ディレクトリのコンテンツを誤って削除するのを防ぎます。
public static function delTree($dir) {
$files = array_diff(scandir($dir), array('.','..'));
foreach ($files as $file) {
(is_dir("$dir/$file") && !is_link($dir)) ? delTree("$dir/$file") : unlink("$dir/$file");
}
return rmdir($dir);
}