Blogブログ

PHPでフォルダ(ディレクトリ)を削除する自作関数

2012/11/22

phpでフォルダを削除する場合、フォルダ内をカラにしないとエラーがでてしまいます。

コチラの記事で書いた関数を少し改良すると

フォルダを削除する自作関数を作れます。

フォルダ削除関数

下記ソースを元に作ります。→この関数についてはコチラの記事を御覧ください。

//$dirは該当ファイルがあるディレクトリの絶対パス
function deleteData ( $dir ) {
    if ( $dirHandle = opendir ( $dir )) {
        while ( false !== ( $fileName = readdir ( $dirHandle ) ) ) {
            if ( $fileName != "." && $fileName != ".." ) {
                unlink ( $dir.$fileName );
            }
        }
        closedir ( $dirHandle );
    }
}
deleteData ( $dir );

上記スクリプトをちょっといじるだけでディレクトリ削除はできます。

関数名はディレクトリ削除なのでdeleteDir()に変えますね。

//$dirは削除したいディレクトリの絶対パス
function deleteDir ( $dir ) {
    if ( $dirHandle = opendir ( $dir )) {
        while ( false !== ( $fileName = readdir ( $dirHandle ) ) ) {
            if ( $fileName != "." && $fileName != ".." ) {
                unlink ( $dir.$fileName );
            }
        }
        closedir ( $dirHandle );
        return rmdir ( $dir );
    }
}
$deleteFlag = deleteDir ( $dir );
var_dump ( $deleteFlag );

$deleteFlag に true が返ってきていれば削除されてます。

流れとしてはフォルダ内のファイルを削除して( . と .. はパーミッションが無いという理由でエラーになるので省きます。この2つは削除しなくてもフォルダは削除できます)

その後、フォルダを削除するという流れです。

他社より断然お得で使いやすい
”アクトのWEB制作”
ACTホームページ相談窓口 / 
システム開発相談窓口