如何在不知道文件扩展名的情况下通过其名称取消链接()?

Kal*_*vas 3 php file unlink

简而言之

我们有一个名为的文件clients.(unique parameter).现在我们想要unlink()它,但由于我们不知道文件扩展名,我们如何成功?

更长的故事

我有一个缓存系统,其中DB查询输入md5()是文件名,缓存过期日期是扩展名.

例: 896794414217d16423c6904d13e3b16d.3600

但有时失效日期会发生变化.因此,对于最终解决方案,应忽略文件扩展名.

我能想到的唯一方法是搜索目录并匹配文件名,然后获取文件扩展名.

Mic*_*ski 9

使用glob():

$files = glob("/path/to/clients.*");
foreach ($files as $file) {
  unlink($file);
}
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以检查filemtime()由它返回的每个文件的glob()排序,以便您只删除最旧的文件,例如.

// Example: Delete those older than 2 days:
$files = glob("./clients.*");
foreach ($files as $file) {
   if (filemtime($file) < time() - (86400 * 2)) {
     unlink($file);
   }
}
Run Code Online (Sandbox Code Playgroud)