(PHP 4, PHP 5)
stat — ファイルに関する情報を取得する
filename で指定されたファイルに ついての統計情報を取得します。 filename がシンボリックリンクの場合、 シンボリックリンクではなくファイルの実体の統計情報が返されます。
lstat() はシンボリックリンクの統計情報を返すという違いを除いて stat() と等価です。
ファイルへのパス。
数値 | 連想 (PHP 4.0.6 以上) | 説明 |
---|---|---|
0 | dev | デバイス番号 |
1 | ino | inode 番号(*) |
2 | mode | inode プロテクトモード |
3 | nlink | リンク数 |
4 | uid | 所有者のユーザ ID(*) |
5 | gid | 所有者のグループ ID(*) |
6 | rdev | inode デバイス の場合、デバイスの種類 |
7 | size | バイト単位のサイズ |
8 | atime | 最終アクセス時間 (Unix タイムスタンプ) |
9 | mtime | 最終修正時間 (Unix タイムスタンプ) |
10 | ctime | 最終 inode 変更時間 (Unix タイムスタンプ) |
11 | blksize | ファイル IO のブロックサイズ(**) |
12 | blocks | ブロックの確保数(**) |
** st_blksize タイプをサポートするシステムでのみ有効です。 その他のシステム(例えば Windows)では -1 を返します。
stat() はエラーの場合 FALSE を返します。
失敗した場合は E_WARNING が発生します。
バージョン | 説明 |
---|---|
4.0.6 | 数値添字の配列に加えて、 各パラメータ毎の連想配列としてもアクセスできるようになりました。 |
例1 stat() の例
<?php
/* ファイルの状態を取得します */
$stat = stat('C:\php\php.exe');
/*
* ファイルのアクセス日時を表示します。
* これは fileatime() をコールするのと同じです
*/
echo 'アクセス日時: ' . $stat['atime'];
/*
* ファイルの更新日時を表示します。
* これは filemtime() をコールするのと同じです
*/
echo '更新日時: ' . $stat['mtime'];
/* デバイス番号を表示します */
echo 'デバイス番号: ' . $stat['dev'];
例2 stat() の情報を touch() と組み合わせる例
<?php
/* ファイルの状態を取得します */
$stat = @stat('C:\php\php.exe');
/* 情報の取得に失敗した ? */
if(!$stat)
{
echo 'Stat のコールに失敗しました...';
}
else
{
/*
* アクセス日時を、現在のアクセス日時の
* 一週間後に設定します
*/
$atime = $stat['atime'] + 604800;
/* ファイルを作成します */
if(!@touch('some_file.txt', time(), $atime))
{
echo 'ファイルの作成に失敗しました...';
}
else
{
echo 'ファイルの作成に成功しました...';
}
}
?>
注意: 時刻の精度は、 ファイルシステムによって異なることがあります。
注意: この関数の結果は キャッシュされます。詳細は、clearstatcache() を参照してください。
PHP 5.0.0 以降、この関数は、 何らかの URL ラッパーと組合せて使用することができます。 どのラッパーが stat() ファミリーをサポートしているか のリストについては、サポートされるプロトコル/ラッパー を参照してください。