ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    PHPでファイル一括削除

    このエントリーを含むはてなブックマーク はてなブックマーク - PHPでファイル一括削除 あとで読む
    PHPでディレクトリ内のファイルを一括削除したい。
    Googleで検索したら、以下のようなPHPのサンプルコードがあった。

    ディレクトリ内のファイルをまとめて削除したい - PHPプロ!Q&A掲示板

       1. if ($handle = opendir('.')) {
    2. while (false !== ($file = readdir($handle))) {
    3. if (is_file($file) && $file != "index.php") {
    4. echo (unlink($file)) ? "{$file}を削除しました<br>\n" :
    5. "{$file}の削除に失敗しました<br>\n";
    6. }
    7. }
    8. closedir($handle);
    9. } else {
    10. echo("ディレクトリのオープンに失敗");
    11. }



    PHPのreaddir関数で、ディレクトリ内のファイルを順次読み込んでいくのが肝だな。

    PHP: readdir - Manual

    ディレクトリから次のファイルのファイル名を返します。
    ファイル名はファイルシステム上に格納されている順番で返されます。



    CodeIgniterのモデルで以下のようなメソッドを実装した。
    (例)「zip」フォルダ内のファイルを削除する場合

    // ディレクトリ内を空にする
    function delete_file($dir)
    {
    if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
    $target_file = $dir.'/'.$file;
    if (is_file($target_file)) {
    unlink($target_file);
    }
    }
    }
    }

    // delete_fileメソッドを呼び出す
    $target_dir = "zip";
    $this->delete_file($target_dir);



    他にもこんなやり方が紹介されていた。

    ディレクトリ内のファイル/フォルダの一括削除 - Yahoo知恵袋

    サーバーの環境依存になるがsystem()を利用してOSのコマンドを実行して消す。
    UNIX環境
    system( "rm -rf dirpath" );



    PHPのsystem関数で、OSのディレクトリやファイルを操作するシェルコマンドを実行すればOKと。

    PHP: system - Manual

    system ― 外部プログラムを実行し、出力を表示する



    system関数を使う場合は、間違って変なコマンドを実行してしまわないように、慎重に利用しないといけないな。

    PHP 逆引きレシピ (PROGRAMMER’S RECiPE)PHP 逆引きレシピ (PROGRAMMER’S RECiPE)
    (2009/06/30)
    鈴木 憲治安藤 建一

    商品詳細を見る

    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/420-7f006988

    FC2Ad