メモ。
下記関数に削除したいディレクトリを投げればOK。
投げたディレクトリが相対パス、またはシンボリックリンクの場合、第二引数にtrueを渡すと参照を解決してくれる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | function destroyDir( $dir , $virtual = false) { $ds = DIRECTORY_SEPARATOR; $dir = $virtual ? realpath ( $dir ) : $dir ; $dir = substr ( $dir , -1) == $ds ? substr ( $dir , 0, -1) : $dir ; if ( is_dir ( $dir ) && $handle = opendir( $dir )) { while ( $file = readdir( $handle )) { if ( $file == '.' || $file == '..' ) { continue ; } elseif ( is_dir ( $dir . $ds . $file )) { destroyDir( $dir . $ds . $file ); } else { unlink( $dir . $ds . $file ); } } closedir ( $handle ); rmdir ( $dir ); return true; } else { return false; } } |