-3

重複の可能性:
PHP の再帰的なディレクトリ削除機能?

PHPで

ファイルやフォルダーが入っているフォルダーを削除する最も簡単な方法を知りたいです。

4

4 に答える 4

2

PHP ドキュメントのこのトリックはかなりクールです。

function rrmdir($path)
{
  return is_file($path)?
    @unlink($path):
    array_map('rrmdir',glob($path.'/*'))==@rmdir($path)
  ;
}

array_map結果の配列に対して指定された関数を呼び出す を利用します。また、クロスプラットフォームです。

于 2011-09-26T00:25:48.357 に答える
1

system("rm -fr $foldername");

ただし、Unixでのみ機能しますが、簡単です。

于 2011-09-26T00:20:41.067 に答える
0

この再帰関数は、rmdir() 関数のリファレンス ページにコメントとして投稿されています。

function rrmdir($dir) {
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $object) {
            if ($object != "." && $object != "..") {
                if (filetype($dir . "/" . $object) == "dir")
                    rrmdir($dir . "/" . $object);
                else
                    unlink($dir . "/" . $object);
            }
        }
        reset($objects);
        rmdir($dir);
    }
}
于 2011-09-26T00:28:16.237 に答える
0

これはここに投稿されましたhttp://www.php.net/manual/en/function.rmdir.php

if(!file_exists($directory) || !is_dir($directory)) { 
    return false; 
} elseif(!is_readable($directory)) { 
    return false; 
} else { 
    $directoryHandle = opendir($directory); 

    while ($contents = readdir($directoryHandle)) { 
        if($contents != '.' && $contents != '..') { 
            $path = $directory . "/" . $contents; 

            if(is_dir($path)) { 
                deleteAll($path); 
            } else { 
                unlink($path); 
            } 
        } 
    } 

    closedir($directoryHandle); 

    if($empty == false) { 
        if(!rmdir($directory)) { 
            return false; 
        } 
    } 

    return true; 
} 

}

于 2011-09-26T00:29:45.667 に答える