2011-01-27 72 views
1

我有一個活動經理我正在做,即將完成,但一件事。我有一個文件,view.php,查看事件。不過,我需要刪除過去有日期的事件。在PHP中刪除過去的日期名稱文件

它是平面文件,所以日期以文件名存儲在文件夾data中。他們的名字就是日期。例如:"data/Monday, 21 February, 2011.html"將在該日期。有沒有人有關於如何刪除過去的事件(文件)的任何想法?

在此先感謝。

+0

你可以使用`stat()`來查看文件的創建日期/時間並根據它來決定。否則,你被困在生成每一個可能的過去的日期,並試圖`反過來解除鏈接()。不應該在數據庫中嗎?然後它會是一個簡單的`DELETE ... WHERE date 2011-01-27 18:18:40

回答

1

你做了一杆與此命名方案你的背部(這也是一般不好的做法,必須在儘可能空格的文件),但不管。

你需要做的是:

  1. 掃描使用scandir或類似的目標目錄。 (glob可能取決於目錄的內容是一個更好的選擇。)

  2. 轉換每個有效(即:「」還是不「..」)HTML文件的名稱爲通過strtotime時間戳使用str_replace後能得到擺脫「.html」部分。

  3. unlink,如果它在過去的文件。

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

這會節省你不必每次文件名的日期部分解析成日期時間值的麻煩,你到一個簡單的數字比較。

相關問題