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

标签 php

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

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

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

理想情况下,我想运行 www/clear-cache.php 并让它查找并删除所有以 .php.cache 结尾的文件 www/

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

最佳答案

在 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 上的回答。

关于php - 查找并删除服务器上的所有缓存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787760/

相关文章:

php - 组合框上的空值 - codeigniter

php - php exec() 中的 sudo

php - 从处理程序获取图像大小

PHP MySql 查询获取每个用户的总和

php - SQL从具有相同列名的2个表中选择仅在不为空时返回列

php - Paypal 自适应支付php

PHP 没有在正确的地方回显

javascript - 在没有轮询器的情况下基于 MySQL 数据库创建 Node.js 仪表板

php - INSERT 由于某种原因不会运行

php - 多维关联数组电子邮件检查