-4

重複の可能性:
PHP: ファイルを含むディレクトリを削除しますか?

次のパス内にいくつかのファイルがある場合

mysite.com/install

そして、「」という名前のファイルをパスdie.phpの外側に作成しました。実行すると、すべてのファイルが含まれるフォルダーが削除されます。/install/mysite.com/die.phpinstall

次のコードをdie.phpに追加しました

<?PHP rmdir('install');?>

/install/ただし、フォルダが空の場合にのみフォルダを削除します! ファイルがある場合、エラーが発生Directory not emptyしますmysite.com/install

だから、それを行う方法を考えてください。

4

2 に答える 2

3

純粋な PHP ソリューションを探している場合は、すべてのサブフォルダーをループする必要があります (上記の回答を参照してください)。GNU coreutils (主要な Linux ディストリビューション) を備えたプラットフォームでのみ機能する高速なアプローチについては、次を使用します。

system('rm -rf '.$dir);

アドバイス: これは安全ではない可能性があります (コマンドをパイプする可能性があります) - 入力を確実にサニタイズしてください。

于 2012-10-28T18:52:43.483 に答える
1

これはうまくいくはずです

<?php
 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);
   }
 }
?>

phpのサイトで見つけました。これはよくある問題のようです。

于 2012-10-28T18:50:16.060 に答える