查找并删除服务器上的所有缓存文件

时间:2011-10-16 22:22:08

标签: php

我将每个页面缓存在自己的目录中,而不是在公共目录中:

www/contact/index.php
www/contact/index.php.cache

实现起来比较简单,但现在我必须手动清除每个文件。

理想情况下,我想运行www / clear-cache.php并让它在www /

中找到并删除以 .php.cache 结尾的所有文件

我问这里因为我已经更新了网站,现在我有点急于清理缓存。

2 个答案:

答案 0 :(得分:3)

如果你运行linux尝试这样的事情:

find . -name "*.php.cache" | xargs rm -f

答案 1 :(得分:1)

在php中,这可以通过使用以下代码来完成

function delete_cache($path, $pattern,) {
  $path = rtrim(str_replace("\\", "/", $path), '/') . '/';
  $matches = Array();
  $entries = Array();
  $dir = dir($path);
  while (false !== ($entry = $dir->read())) {
    $entries[] = $entry;
  }
  $dir->close();
  foreach ($entries as $entry) {
    $fullname = $path . $entry;
    if ($entry != '.' && $entry != '..' && is_dir($fullname)) {
      delete_cache($fullname, $pattern);
    } else if (is_file($fullname) && preg_match($pattern, $entry)) {
      unlink($fullname); // delete the file
      echo $fullname," deleted.<br />"; #comment out if you do not want to echo the file deleted.
    }
  }
}

这会遍历每个文件和目录,查找文件名中包含缓存的所有文件并将其删除并通过以下方式调用:

delete_cache(getenv("DOCUMENT_ROOT"), "/cache/i"); //Starts in the www/htdocs folder

我将首先声明备份站点,以确保它不会删除文件名中包含缓存所需的文件。或者,如果您想为自己的网站设置自动缓存系统,可以在Simple PHP caching with more than 3 parts

上查看我的答案