岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

Windowsで「polipo -x」できないからPHPで対処した

polipo on win の diskcache trancate ( polipo -x ) って無効なのかな? - twwp」にあるとおり、WindowsPolipoでは「-x」オプションが効かない。放っておくとキャッシュファイルがどんどん増えてしまう。

polipo_trimcacheで対処するのがスマートっぽいが、そのためにPythonを入れるのも手間なので却下(というかpolipo_trimcacheがWindowsで使えるのかどうか知らない)。

XAMPPは入っているから、指定日数アクセスのないキャッシュファイルを削除するPHPスクリプトを書いた。タスクに登録して様子見中。

<?php
define('CACHE_DIR', 'C:\Softs\Polipo\cache');
define('CACHE_DAYS', 1);

$subDirs = array_slice(scandir(CACHE_DIR), 2);
if (count($subDirs) == 0) {
    exit;
}

chdir(CACHE_DIR);
$now = time();
foreach ($subDirs as $subDir) {
    foreach (glob($subDir . DIRECTORY_SEPARATOR . '*') as $file) {
        $pastDays = ($now - filemtime($file)) / (60 * 60 * 24);
        if ($pastDays >= CACHE_DAYS) {
            unlink($file);
        }
    }
    @rmdir($subDir);
}