PHP 删除所有包含给定字符串的文件

标签 php regex caching unlink

我有一个基本的缓存系统设置,它根据 url 中的参数保存一个文件,这样如果再次查看该页面,它就会访问静态文件。例如,如果我的网址是

http://www.example.com/female/?id=1

我在名为 id=1.html 的缓存文件夹中有一个文件

female/cache/id=1.html

目前这被缓存了指定的时间,但是我希望它始终使用缓存的文件,除非页面被更新。

所以我实现了下面的 php 代码。

    <?
        unlink('../' . $gender . '/cache/id=' . $_POST['id'] . '.html');
    ?>

这工作正常,但有时我的网址中有其他参数。所以目前我的缓存文件夹中有以下文件

    female/cache/id=1.html
    female/cache/id=1&type=2.html
    female/cache/id=1&type=3.html
    female/cache/id=1&type=3&extra=4.html

但是当我保存我的内容时,只有 female/cache/id=1.html 被删除了。

我将如何删除此文件夹中 id=1 的任何文件

最佳答案

你可以使用 glob :

<?php
foreach (glob("female/cache/id=1*.html") as $filename) {
    unlink($filename);
}
?>

其中星号 * 匹配文件名的所有变体。

关于PHP 删除所有包含给定字符串的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18283084/

相关文章:

php - 按提交按钮后显示数据库条目

php - MySQL 中 DELETING 和 INSERTING 时出现重复键错误

javascript - 在逗号分隔列表上应用 url 验证正则表达式

caching - Varnish:POST 数据后清除缓存

PHP mySQL 表比较两列

php - 在 GoDaddy 上劫持 session 变量有多容易 (PHP)

正则表达式 VbScript 提前捕获

java - java 正则表达式中的错误

ruby-on-rails - 来自模型的 expire_action

caching - Magento - 清除单个类别的缓存