Baccho Log

No Image

Sponsored Link

[PHP]指定日以前のファイルを削除する方法

  • 投稿日:
  • 更新日:
Tags:
PHP
Categories:
プログラミング

指定した日付以前のファイルを削除したい

古すぎるバックアップファイルを日付を指定して自動で消したいことがあるかと思いますが、
毎度、調べながら実装するのが効率悪すぎたので備忘録です。

// 指定のディレクトリ
$log_path = __DIR__ . '/logs/';

// ディレクトリが存在するかチェック
if (file_exists($log_path)) {

    // 指定の拡張子のファイルを取得
    $log_files  = glob($log_path . '*.xml');

    // この日付以前のファイルを削除する(これは2ヶ月指定)
    $target_day = strtotime(date('YmdHis') . '-2 month');

    foreach ($log_files as $_log_files) {
        // ファイルの最終更新日を取得
        $m_date = filemtime($_log_files);

        // 最終更新日が指定日より前であれば削除
        if (strtotime(date('YmdHis', $m_date)) < $target_day) {
            unlink($_log_files);
        }
    }
}

全ファイルを削除したい

ちなみに日付関係なく、指定の拡張子のファイルをすべて削除したいときはもっとスマートに書くことが可能です。

array_map('unlink', glob(__DIR__ . '/logs/*.xml'));
« [Docker]Dockerでホスト側とマウントするのにエラーが起きた件最新の投稿です

Sponsored Link

コメントする

記事の感想や修正依頼等ありましたら、コメントをお願いいたします