keep in mind that this function is prone to an overflow, and on big filesystems it will return negative values.
fileinode
(PHP 4, PHP 5)
fileinode — ファイルの inode を取得する
説明
int fileinode
( string
$filename
)ファイルの inode を取得します。
パラメータ
-
filename -
ファイルへのパス。
返り値
ファイルの inode 番号を返し、失敗した場合に FALSE を返します。
例
例1 現在のファイルとのファイルの inode の比較
<?php
$filename = 'index.php';
if (getmyinode() == fileinode($filename)) {
echo 'You are checking the current file.';
}
?>
エラー / 例外
失敗したときは E_WARNING が発生します。
注意
注意: この関数の結果は キャッシュされます。詳細は、 clearstatcache() を参照してください。
ヒント
PHP 5.0.0 以降、この関数は、 何らかの URL ラッパーと組合せて使用することができます。 どのラッパーが stat() ファミリーをサポートしているかを調べるには サポートするプロトコル/ラッパー を参照してください。
meltir at meltir dot com dot nothing ¶
5 years ago
mark nearby techexplained dot com ¶
8 years ago
This function, in spite of its name, also works for directories. Most any valid path in the filesystem will generate an inode value.
pixel20 at wp dot pl ¶
5 years ago
Sample function that generates apache 2.2 ETag. Useful for scripts serving images or other cachable data.
$file="example.png";
// Inode
$ETag = dechex(fileinode($file));
// Size
$ETag.= "-".dechex(filesize($file));
// Modification time in useconds & (2^33-1)
$ETag.= "-".dechex(((filemtime($file).str_repeat("0",6)+0) & (8589934591)));
header("ETag: \"$ETag\");
