2011-01-27 13 views
1

私はイベントマネージャを持っています。私は、イベントを表示するファイルview.phpを持っています。しかし、私は過去に日付を持つイベントを削除する必要があります。PHPで名前が過去の日付のファイルを削除する

フラットファイルなので、日付はファイル名としてストアされ、dataというフォルダに格納されます。彼らの名前は日付です。たとえば:"data/Monday, 21 February, 2011.html"は、その日付になります。誰も過去にあったイベント(ファイル)を削除する方法についてのアイデアはありますか?

ありがとうございます。

+0

'stat()'を使ってファイルの作成日時を見て、それに基づいて決定できます。さもなければ、可能なすべての過去の日付を生成し、順番に 'unlink()'しようとしています。これはデータベースにはないはずですか?それから、単純な 'DELETE ... WHERE date

+0

私は創造時間を得ることができません。 –

答えて

1

あなたはこの名前付けスキームであなたの背中の棒を作っています(できるだけスペースを入れてファイルを持たせるのも悪いことです)。あなたがする必要がどのような

は次のとおりです。

  1. scandirまたは類似を使用してターゲットディレクトリをスキャンします。 (globは、ディレクトリの内容に応じて、より良い賭けかもしれません。)

  2. (すなわち:「」ではないか「..」)それぞれの有効な変換strtotime経由のタイムスタンプにhtmlファイル名str_replaceを使用した後に取得するには".html"部分を取り除きます。

  3. unlinkこれは過去のファイルです。

2

または、より良いオプションは、テキスト形式の代わりに数値のタイムスタンプを格納することです。あなたのdatetime値にするたびに、ファイル名の日付部分を解析する手間を節約し、あなたがダウンシンプルにしていると思います

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

:次に、あなたのようなもので、必要なファイルを削除することができ数値比較。

関連する問題