電子書籍の厳選無料作品が豊富!

指定したディレクトリ内に自動生成されて保存されるファイルの最終更新時間を取得したいと思っています。

hogeというディレクトリがあったとして
この中に200511.logというファイルがあり日々更新されて行きます。
ただし、月が変わると200512.logと新しいファイルが生成されてまた更新されて行くような感じです。
この場合、ただ
<?php echo "最終更新: " . date("Y-n-d", filemtime('hoge/200511.log')); ?>
とすれば、当月は良いのですが、来月になったら更新されなくなってしまいます。
ディレクトリの時間でやってみたらどうかと思い、
<?php echo "最終更新: " . date("Y-n-d", filemtime('hoge/')); ?>
とやってみましたが、これだと、ただ単にhogeというディレクトリ自体の更新が表示されてしまいました。(当たり前か。。)

つまりやりたい事は、hogeディレクトリ内でなにか変化が起きたらその時間を表示したい、ということなのですが、どうすれば良いでしょうか?

A 回答 (4件)

既に解決済みでしょうか・・




$filename = exec("ls -c1 hoge/");

で一番最後にファイルステータスを更新したファイル名を取得できますので、これを元に処理をしてみてはどうでしょうか。
    • good
    • 0
この回答へのお礼

別の方法で解決できました。(ログ(csv)表示させるプログラムを作って、ログそのものから日付を引っ張ってきました)

ですが、この方法こそ本来やろうとした事でした。
今後の参考にさせて頂きたいと思います。
ありがとうございました。

お礼日時:2005/11/16 01:12

別の方向からのアドバイスをひとつ入れときます。



ログ自動生成の方のプログラムをいじれるのであれば、
ログの自動生成と同時に、固定名のダミーファイル('hoge/dummy.txt'等)を一つ生成すれば、
あとはそのダミーの更新日時を

<?php echo "最終更新: " . date("Y-n-d", filemtime('hoge/dummy.txt')); ?>

で取得すればいいと思います。


そのプログラム以外からファイルの更新があるのなら、使えない方法ですけれども。
    • good
    • 0
この回答へのお礼

生成プログラムの方は弄れないのです。また複数のプログラムから更新されるので、残念ながらこの方法は取れません。
が、アイデアとして大変参考になりました。今後活かしたいと思います。
ありがとうございました。

お礼日時:2005/11/14 15:20

<?php echo "最終更新: " . date("Y-n-d", filemtime('hoge/200511.log')); ?>


でいいのだったら
$year=date("Y");
$month=date("m");
としておいて
echo "最終更新: " . date("Y-n-d", filemtime("hoge/$year$month.log"));
とすればいいのでは

この回答への補足

と思ったのですが、当月は良さそうなのですが、必ずしも毎日更新されるわけではなく、付きの切り替え時期でズレそうな気がしてきました。。

補足日時:2005/11/14 15:21
    • good
    • 0
この回答へのお礼

上手く行きそうです。ありがとうございました!

お礼日時:2005/11/14 15:19

statという関数でその動作を取得することが出来ます。


mtimeが最終更新時間になると思います。

詳細はマニュアルのstat関数のページで確認してみてください。

参考URL:http://php.planetmirror.com/manual/ja/function.s …
    • good
    • 0
この回答へのお礼

参考にしてみます。
ctimeというものとの差異がイマイチ判りませんが、勉強しないと。。
ありがとうございました!

お礼日時:2005/11/14 15:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!