ときどきディレクトリをスキャンし、古いキャッシュ ファイルを削除するプログラムを作成しました。
多くの場合、キャッシュ ファイルの数が非常に多くなり、メモリ不足エラーが発生しました。
glob(cacheme_directory()."*");
限られた数のファイルを返すように glob を作成するにはどうすればよいですか? 最初に 50000 とします。その後、それらを削除し、次のセッションで再度削除することができます。
これは、グロブ ディレクトリ/フォルダー リストの結果の数を制限する場合とは異なります。
メモリの使用量を減らす必要があります。したがって、すべてをロードしてから削除しても機能しません。
これは完全なプログラムです
if (mt_rand(0,1000)==0)
{
$files = glob(cacheme_directory()."*");
foreach($files as $file)
{
$filemtime=filemtime ($file);
if (is_file($file) && time()-$filemtime>= $cacheAge)
{
unlink($file);
}
}
}