在 Linux 核心上,像 BTRFS、BcacheFS 等 COW 檔案系統,Inode 編號無法用於判斷是否為同一個檔案。
這是故意的。
(PHP 4, PHP 5, PHP 7, PHP 8)
fileinode — 取得檔案 inode
filename
檔案的路徑。
傳回檔案的 inode 編號,失敗時傳回 false
。
失敗時,會發出 E_WARNING
。
範例 #1 比較檔案的 inode 與目前檔案
<?php
$filename = 'index.php';
if (getmyinode() == fileinode($filename)) {
echo '您正在檢查目前的檔案.';
}
?>
注意:此函式的結果會被快取。詳情請參閱 clearstatcache()。
從 PHP 5.0.0 開始,此函式也可以與部分 URL 包裝器一起使用。請參閱 支援的通訊協定和包裝器 以確定哪些包裝器支援 stat() 系列功能。
在 Linux 核心上,像 BTRFS、BcacheFS 等 COW 檔案系統,Inode 編號無法用於判斷是否為同一個檔案。
這是故意的。
如 https://php.dev.org.tw/manual/en/function.stat.php#refsect1-function.stat-returnvalues: 中所述:
> 在 Windows 上,從 PHP 7.4.0 開始,這是與檔案關聯的識別碼,它是一個 64 位元無符號整數,因此可能會溢位。以前,它始終為 0。
看來 fileinode 共用相同的底層實作。