PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのfstat()関数の使い方!開いているファイルの情報を取得する方法

fstat()関数とは

fstat()関数は、すでに開かれているファイルに関する情報を取得するためのPHPの組み込み関数です。fopen()などで開いたファイルポインタを渡すことで、そのファイルのサイズや最終更新日時などの属性情報を配列として受け取ることができます。

戻り値の配列に含まれる要素

fstat()関数は、以下の要素を持つ配列を返します。各要素には、数値インデックスと文字列キーの両方でアクセス可能です。

  • [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] ・・・ 割り当て済みブロック数

構文

fstat(file_pointer)

パラメータ

  • file_pointer ・・・ fopen()を使って作成したファイルポインタ。この引数は必須です。

戻り値

fstat()関数は、上記の要素を含む配列を返します。

使用例

<?php
    $file_pointer = fopen("one.txt", "r");
    print_r(fstat($file_pointer));
    fclose($file_pointer);
?>

このコードでは、「one.txt」を読み取りモードで開き、fstat()でファイル情報を取得して表示しています。

出力結果

Array
(
[0] => 0
[1] => 0
[2] => 33206
[3] => 1
[4] => 0
[5] => 0
[6] => 0
[7] => 120
[8] => 1928173529
[9] => 1124185875
[10] => 1114322653
[11] => -1
[12] => -1
[dev] => 0
[ino] => 0
[mode] => 33206
[nlink] => 1
[uid] => 0
[gid] => 0
[rdev] => 0
[size] => 120
[atime] => 1928173529
[mtime] => 1124185875
[ctime] => 1114322653
[blksize] => -1
[blocks] => -1
)

補足:stat()との違いと注意点

同様の情報はstat()関数でも取得できますが、stat()はファイル名を引数に取るのに対し、fstat()は既に開いたファイルポインタを引数に取る点が異なります。また、PHPはファイル情報をキャッシュする仕組みがあるため、常に最新の情報を取得したい場合は、事前にclearstatcache()を呼び出しておくことをおすすめします。

  1. PHPのlog()関数とは?自然対数の計算方法と使い方を解説

    定義と使い方log() 関数は、数値の自然対数(natural logarithm)を計算します。対数とは、指数関数の逆演算のことです。たとえば 102=100 という関係は「log10100=2」と表せます。自然対数はオイラー数 e を底として計算され、PHP では定義済み定数 M_E によって e の値(2.7182818284590452354)が提供されています。具体例を挙げると、exp(4.60517018599)=100(つまり e4.60517018599=100)が成り立つため、loge100=4.60517018599 となります。PHP では、この自然対数(loge)を l

  2. PHPのlcg_value()関数とは?乱数生成の基本と使い方を解説

    lcg_value()関数の定義と使い方lcg_value()関数は、0から1までの範囲でランダムな数値(浮動小数点数)を生成するPHP組み込み関数です。「LCG」とは「線形合同法(Linear Congruential Generator)」の略称です。この手法は、不連続な区分線形方程式を用いて擬似乱数列を計算するアルゴリズムで、擬似乱数生成アルゴリズムの中でも最も古くから知られているものの一つです。構文lcg_value ( void ) : floatパラメータこの関数は引数を受け取りません。戻り値lcg_value()関数は、0.0以上1.0以下の範囲にある擬似乱数のfloat値を返し