使用PHP删除名称中包含过去日期的文件

时间:2011-01-27 18:16:18

标签: php events date file flat

我正在制作一个活动经理,这几乎已经完成,但有一件事。我有一个查看事件的文件view.php。但是,我需要删除过去有日期的事件。

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

提前感谢。

2 个答案:

答案 0 :(得分:2)

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

$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 ...
}

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

答案 1 :(得分:1)

你已经用这个命名方案为你的背部制作了一个杆(尽管有尽可能使用空格的文件通常也是不好的做法),但无论如何。

您需要做的是:

  1. 使用scandir或类似内容扫描目标目录。 (glob可能是更好的选择,具体取决于目录的内容。)

  2. 在使用strtotime删除“.html”后,通过str_replace将每个有效(即:不是“。”或“..”)html文件名转换为时间戳部分。

  3. unlink该文件是否已存在。