stat()関数を使うと、引数に指定されたファイルのいくつかの属性の統計情報を取得できます。この関数の返り値は配列です。下表に基づいて、数値インデックスあるいは連想配列としての文字列を指定することによって、個々の情報を取得できます。
stat()関数の返り値の連想配列から取得できる情報
数値インデックス | 文字列インデックス | 取得される情報 |
0 | dev | デバイス番号 |
1 | ino | ノード番号 |
2 | mode | プロテクションモード |
3 | nlink | リンク数 |
4 | uid | 所有者ユーザID |
5 | gid | 所有者グループID |
6 | rdev | デバイスタイプ |
7 | size | ファイルサイズ(バイト単位) |
8 | atime | 最終アクセス日時(タイムスタンプ形式) |
9 | mtime | 最終更新日時(タイムスタンプ形式) |
10 | ctitme | 作成日時(タイムスタンプ形式) |
11 | blksize | ブロックサイズ |
stat()関数によって得られた情報は、PHPによってキャッシュされます。環境によってはリアルタイムに取得値が変わらないことがあります。そのような場合には、clearstatcache()関数を呼び出せばキャッシュがクリアできます。
呼び出し例: clearstatcache();
<?php header("Content-type: text/html; charset=utf-8"); $status = stat("images/gihyo.gif"); echo "デバイス番号 → " . $status[0] . "<br>"; echo "ノード番号 → " . $status[1] . "<br>"; echo "デバイスタイプ → " . $status[6] . "<br>"; echo "ファイルサイズ → " . $status["size"] . "<br>"; echo "最終アクセス日時 → " . date("Y/m/d H:i:s", $status["atime"]) . "<br>"; echo "最終更新日時 → " . date("Y/m/d H:i:s", $status["mtime"]) . "<br>"; echo "作成日時 → " . date("Y/m/d H:i:s", $status["ctime"]) . "<br>"; ?>