ここから本文です

phpでのファイル情報の取得

n_t********さん

2008/5/2116:48:44

phpでのファイル情報の取得

php初心者です
データをアップロードダウンロードするスクリプトを作成したのですが、データ整理を行う際に解らない事が
ありますので教えてください

アップロードされたデータがダウンロードされるとデータベースにフラグが付くようになっています。
そこで、最終アクセス日が7日経過したものを変数へ入れ、フラグを元に削除するか、ダウンロードを促す
メールを送るかという事を行いたいと思っています。

ここで、あるフォルダ内で最終アクセス日から7日経過したファイル名を変数へ配列で入れる必要があるの
ですが、方法がわかりません・・・(汗)

教えて頂けないでしょうか
よろしくお願いします

閲覧数:
728
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

maenet1972さん

2008/5/2200:47:26

> 普通に考えると、DBにそういった情報も入れておけば簡単かつ高速に処理できますが。

私も迷わず同意です!
最終アクセス日時を当てにして処理させるのはどうなのかなぁと、、、。

例えば、単純にそのデータベースにtime()などで時間を保存させておいて、
処理する際に、再度現時刻を取得し、「7*24*3600」を引いた時間が7日前ということになりますので、
その時間以下のデータを比較させて、削除するなりメールするなりすればいいと思います。

//アップロードされたら、タイムスタンプを取得
$time_flg=time();
//アップロードファイル名
$filename="アップロードのファイル名";
//データベース用に整形
$datebase=$time_flg.'\t'.$filename;

この"$datebase"をデータベースに保存させ、
7日経過のチェック処理の際は

//データベースから読み込み
$time_chk=time()-(7*24*3600);
$dateload=file('データベースのパス');
このあとは、foreachやexploadなどで、個別に変数または配列にして、
そのフラグやらと$time_chk以下のものをチェックさせて、処理させればいいのかなと。

ただ、これを実行させるタイミングが一番重要のような気がします。
誰かがアクセスした際に実行するならともかく、
定期的(例えば毎日0時とか)に行いたい場合だと、別にクローンを利用するなどの
必要性が出てきます。

質問した人からのコメント

2008/5/22 08:02:15

降参 DBにダウンロード時刻を持たせアドバイスのようにやってみます
この処理はクローンで深夜実行するつもりでした
ありがとうございます <(_ _)>

ベストアンサー以外の回答

1〜1件/1件中

B-51さん

2008/5/2117:39:02

ディレクトリ内のファイル一覧を取得するには、opendir()/readdir()/closedir()を使えばOK。
ファイルの情報はstat()で取れます。
あとは、お好きなように処理してください。

ちなみに、DBにはアップロードされた日付やダウンロードされた日付は入らないのですか?
普通に考えると、DBにそういった情報も入れておけば簡単かつ高速に処理できますが。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる