Sponsored Link
[PHP]指定日以前のファイルを削除する方法
指定した日付以前のファイルを削除したい
古すぎるバックアップファイルを日付を指定して自動で消したいことがあるかと思いますが、
毎度、調べながら実装するのが効率悪すぎたので備忘録です。
// 指定のディレクトリ
$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'));