ファイルシステム 関数
PHP Manual

stat

(PHP 4, PHP 5, PECL maxdb:7.5.00.24-7.6.00.38)

statファイルに関する情報を取得する

説明

array stat ( string $filename )

filename で指定されたファイルに ついての統計情報を取得します。 filename がシンボリックリンクの場合、 シンボリックリンクではなくファイルの実体の統計情報が返されます。

lstat() はシンボリックリンクの統計情報を返すという違いを除いて stat() と等価です。

パラメータ

filename

ファイルへのパス。

返り値

stat()fstat() の結果のフォーマット
数値 連想 (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 ブロックの確保数(**)
* Windows では常に 0 となります。

** 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() ファミリーをサポートしているか のリストについては、サポートされるプロトコル/ラッパー を参照してください。

参考


ファイルシステム 関数
PHP Manual