Webサーバーに.htmlファイルが保存されている「キャッシュ」フォルダーがあります。ファイル構造は次のとおりです。
cache > user@gmail.com > several .html files.
ユーザーフォルダ内のすべてのサブディレクトリを参照し、3か月以上前のファイルを削除するPHPスクリプトが必要です。
私はこれまでにこのスクリプトを持っています:
$DIR = '/cache/';
if ($handle = opendir($DIR)) {
while (false !== ($file = readdir($handle))) {
if ( filemtime($DIR.$file) <= time()-60*60*24*120 ) { //120 days?
unlink($DIR.$file);
}
}
closedir($handle);
}
ただし、サブディレクトリは処理しません。また、ディレクトリのリンクを解除しようとしているため、エラーが発生します。
更新:カウント機能を追加しようとしています:
<?php
rrmdir(/www/deletecontentsofthisfolder/);
echo $count . ' files deleted!';
function rrmdir($dir,$count=0)
{
if (is_dir($dir))
{
$objects = scandir($dir);
foreach ($objects as $object)
{
if ($object != "." && $object != "..")
{
if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object,$count);
if (filemtime($dir."/".$object) <= time()-60*60*24*120) @unlink($dir."/".$object); count++
}
}
reset($objects);
//rmdir($dir);
}
return $count;
}