我将每个页面缓存在其自己的目录中,而不是在公共(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/