在PHP中删除名称中具有过去日期的文件

分享于2023年03月15日 date events file flat php 问答
【问题标题】:Delete file with past date in name in PHP在PHP中删除名称中具有过去日期的文件
【发布时间】:2023-03-07 19:22:02
【问题描述】:

我正在制作一个事件管理器,这几乎完成了,但只有一件事。我有一个文件 view.php 可以查看事件。但是,我需要删除过去日期的事件。

它是平面文件,因此日期以文件名的形式存储在文件夹 data 中。他们的名字将是日期。例如: "data/Monday, 21 February, 2011.html" 将用于该日期。有人对如何删除过去的事件(文件)有任何想法吗?

提前致谢。

  • 您可以使用 stat() 查看文件的创建日期/时间并据此做出决定。否则,您将无法生成所有可能的过去日期并依次尝试 unlink() 。这不应该在数据库中吗?那么它就是一个简单的 DELETE ... WHERE date < now() 类型的东西。
  • 我无法获取创建时间。

【解决方案1】:

或者,更好的选择是存储数字时间戳而不是文本格式。然后您可以使用以下内容删除必要的文件:

$dir = new DirectoryIterator('/path/to/your/files');
foreach($dir as $file) {
    ... extract timestamp from each file ...
    ... if it's less than your cutoff, delete file ...
}

这样就省去了每次都必须将文件名的日期部分解析为日期时间值的麻烦,并且您只需进行简单的数字比较。

【讨论】: