2012-03-19 72 views
0

我在我的網站上使用phpFlickr和上傳/刪除工作正常,但是當我刪除照片和/或從photoset刪除照片緩存(使用文件系統選項)滯後幾分鐘,仍然顯示當時刪除的圖像。phpFlickr緩存不更新當照片被刪除

如果我禁用緩存它按預期工作。執行刪除操作時是否有任何方法可以手動清除緩存?

回答

1

/path/to/phpFlickrCache目錄中刪除特定flickr集合和與集合相關的所有圖像的解決方案。您需要提供$flickr_photoset_id和文件系統路徑。所有其他集合及其圖像將保留在緩存中。

$flickrset = exec("grep -l '" . $flickr_photoset_id . "' /path/to/phpFlickrCache/*.cache"); 

if ($f = fopen($flickrset, "r")) { 
    $s = fgets($f, 24000); 
    fclose($f); 
    unlink($flickrset); 

    preg_match_all("/\"id\";s:10:\"(\d+)\";/", $s, $images); 

    // $images[1] contains matched images from (\d+) 
    foreach ($images[1] as $img) { 
     $i = exec("grep -l '" . $img . "' /path/to/phpFlickrCache/*.cache"); 
     unlink($i); 
    } 
}