1. 規定の提出:
以下为引用的内容: deleteDir($dir) { if (rmdir($dir)==false && is_dir($dir)) { if ($dp = opendir($dir)) { while (($file=readdir($dp)) != false) { if (is_dir($file) && $file!='.' && $file!='..') { deleteDir($file); } else { unlink($file); } } closedir($dp); } else { exit('Not permission'); } } } |
2. システムコールメソッド
以下为引用的内容: function del_dir($dir) { if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { $str = "rmdir /s/q " . $dir; } else { $str = "rm -Rf " . $dir; } } |
3. ラウンドロビン方式
以下は引用内容です:
{ echo $pathdir;//デバッグ時に使用します if(is_empty_dir($pathdir))//それが空の場合 { rmdir($pathdir);// 直接削除します } else {//それ以外の場合は、 と .. を除いてこのディレクトリを読み取ります。 $d = dir($pathdir); while($a=$d->read()) { if(is_file($pathdir.'/'.$a) && ( $ a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);} > If(is_dir($pathdir.'/'. $a) && ($a!='.') && ($a!='..')) {//ディレクトリの場合 If (! Is_empty_dir ($ PATHDIR. ' /'. $ A)) // 空かどうか // 空でない場合は、元のパス + 下位レベルのディレクトリ名を呼び出します。 deltree($pathdir.'/'.$ a) rmdir($pathdir.'/'.$a); "最初にディレクトリ内のすべてのファイルを削除する必要があります。";//デバッグ時に使用しました。 } } function is_empty_dir($pathdir) { //判定 ディレクトリが空かどうか、私のやり方が下手ですよね? . と .. 以外に空でないものがあるかどうかを確認してください。 $d=opendir($pathdir) while($a=readdir($; d )) { $i++; } closedir($d) if($i>2){return false;} それ以外の場合は true を返します。 } |