stat ファイルに関する情報を取得する &reftitle.description; arrayfalsestat stringfilename filenameで指定されたファイルに ついての統計情報を取得します。 filename がシンボリックリンクの場合、 シンボリックリンクではなくファイルの実体の統計情報が返されます。 Windows 環境、かつ PHP 7.4.0 より前の NTS ビルドでは、 size, atime, mtime, ctime の統計情報は、シンボリックリンクの値が返されていました。 lstat はシンボリックリンクの統計情報を返すという違いを除いて stat と等価です。 &reftitle.parameters; filename ファイルへのパス。 &reftitle.returnvalues; <function>stat</function> と <function>fstat</function> の結果のフォーマット 数値 連想配列 説明 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 512 バイトのブロックの確保数(**)
* Windows では常に 0 となります。 ** st_blksize タイプをサポートするシステムでのみ有効です。 その他のシステム(例えば Windows)では -1 を返します。 *** PHP 7.4.0 以降、Windows では、この値はファイルが含まれるボリュームのシリアル番号です。 これは64ビットの 符号なし 整数です。 よって、オーバーフローする可能性があります。 これより前のバージョンでは、stat 関数ではドライブレターを数値で表現した値 (たとえば、C: では 2) でした。 lstat 関数では 0 でした。 **** PHP 7.4.0 以降、Windows では、この値はファイルに関連付けられた識別子です。 これは64ビットの 符号なし 整数です。 よって、オーバーフローする可能性があります。 これより前のバージョンでは、この値は常に 0 でした。 ***** Windows では、 読み取り専用のファイル属性に従って、 書き込み可能のパーミッションビットが設定されます。 そして、この値は全てのユーザ、グループ、 オーナーについて、同じ値が報告されます。 is_writable とは異なり、ACL は考慮されません。 mode の値は、複数の関数によって読まれる情報が含まれています。 8進数の場合、一番右の桁から評価され、はじめの3桁が chmod によって返されます。 次の桁は PHP によって無視されます。その次の2桁は以下のファイルタイプを示します: <literal>mode</literal> のファイルタイプ mode が8進数だった場合 意味 0140000 ソケット 0120000 リンク 0100000 通常のファイル 0060000 ブロックデバイス 0040000 ディレクトリ 0020000 キャラクタデバイス 0010000 fifo
よって、たとえば 通常のファイルは 0100644 のような値になりますし、 ディレクトリは 0040755 のような値になります。
stat はエラーの場合 &false; を返します。 &fs.file.32bit;
&reftitle.errors; 失敗した場合は E_WARNING が発生します。 &reftitle.changelog; &Version; &Description; 7.4.0 Windows では、 デバイス番号は、ファイルが含まれるボリュームのシリアル番号を返すようになりました。 そして、inode 番号は、ファイルに関連付けられた識別子を返すようになりました。 7.4.0 シンボリックリンクの場合、 size, atime, mtime, ctime の統計情報は、ファイルの実体の値が返されるようになりました。 これより前のバージョンの Windows NTS ビルドはそうではありませんでした。 &reftitle.examples; <function>stat</function> の例 ]]> <function>stat</function> の情報を <function>touch</function> と組み合わせる例 ]]> &reftitle.notes; ¬e.filesystem-time-res; ¬e.clearstatcache; &tip.fopen-wrapper.stat; &reftitle.seealso; lstat fstat filemtime filegroup SplFileInfo