WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
PHP
システム開発
[PHP]特定ディレクトリ内のログ等の古いファイル名のファイル削除
システム開発担当のTFです。
やり方
- glob関数で、特定ディレクトリ内のファイル名全てを配列に格納する
- 必要なファイルを残し、ファイル確認後古いファイルをunlink関数で削除する
メモ
glob関数は、パスも取れる
basename関数を使うと、ファイル名だけ取得可能
サンプル
<?php
// logディレクトリ内のファイル名一覧の取得
// ファイル名は、 YYYYmmdd.log とする
$files = glob('log/*.csv');
// 例1) 10世代残す
// ファイル名の降順ソート
rsort($files);
$remain_cnt = 10;
foreach($files AS $file){
if( $remain_cnt <= 0 ){
// 古いファイルの削除
if( file_exists($file) ){
unlink($file);
}
}
else{
$remain_cnt--;
}
}
// 例2) 1カ月残す
// ファイル名の昇順ソート
sort($files);
foreach($files AS $file){
// ファイル名から日付取得
$file_name = basename($file);
$date = str_replace(".csv", "", $file_name);
// 判定
if( $date < date('Ymd', strtotime("-1 month")) ){
// 古いファイルの削除
if( file_exists($file) ){
unlink($file);
}
}
else{
break;
}
}
?>