當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP stat( )用法及代碼示例


PHP中的stat()函數是一個內置函數,用於返回文件信息。 stat(0)函數返回文件的統計信息,該文件是具有以下元素的數組:

  • [0]或[dev]-設備號
  • [1]或[ino]-索引節點編號
  • [2]或[mode]-索引節點保護模式
  • [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]-分配的塊數

stat()函數接受文件名作為參數,並在成功時返回包含上述元素的數組,在失敗時返回具有False的數組。
如果filename是符號鏈接,則統計信息來自文件本身,而不是符號鏈接。

用法:


stat(filename)

使用的參數:
PHP中的stat()函數接受一個參數。

  1. filename:它指定要了解其統計信息的文件的文件名。

返回值:
如果成功,則返回帶有上述元素的數組;如果失敗,則返回False。

錯誤與異常

  1. stat()函數的結果因服務器而異。
  2. stat()函數的結果被緩存,因此應使用clearstatcache()函數清除緩存。
  3. stat()函數在失敗時生成E_WARNING。
  4. 在Windows平台上,所有者的組標識,所有者的用戶標識和索引節點號始終為0。
  5. 對於大於2GB的文件,由於PHP的整數類型是帶符號的並且許多平台使用32位整數,因此某些文件係統函數可能會返回意外結果。

例子:

Input : $test = stat('gfg.txt');
        echo 'Access time: ' .$test['atime'];
        echo '
Modification time: ' .$test['mtime']; echo '
Device number: ' .$test['dev']; Output :Access time: 1141666750 Modification time: 1135897503 Device number: 0 Input : $test = stat('gfg.txt'); echo 'Access time: ' .$test[8]; echo '
Modification time: ' .$test[9]; echo '
Device number: ' .$test[0]; Output : Access time: 1141666750 Modification time: 1135897503 Device number: 0 Input : $test = stat('gfg.txt'); $access_time = $stat['atime'] + 18000; if (touch($test, time(), $access_time)) { echo 'Access time changed to 5 hours in the past!'; } else { echo 'Access time could not be changed.'; } Output : Access time changed to 5 hours in the past!

以下示例程序旨在說明stat()函數。

假設有一個名為“gfg.txt”的文件

程序1:

<?php 
$test = stat('gfg.txt'); 
//using stat() along with name index to display access time 
echo 'Access time: ' .$test['atime']; 
  
//using stat() along with name index  to display modification time 
echo '<br />Modification time: ' .$test['mtime']; 
  
//using stat() along with name index  to display device number 
echo '<br />Device number: ' .$test['dev']; 
?>

輸出:

Access time: 1141666750
Modification time: 1135897503
Device number: 0

程序2:

<?php 
$test = stat('gfg.txt'); 
  
//using stat() along with number index to display access time 
echo 'Access time: ' .$test[8]; 
  
//using stat() along with number index to display modification time 
echo '<br />Modification time: ' .$test[9]; 
  
//using stat() along with number index to display device number 
echo '<br />Device number: ' .$test[0]; 
?>

輸出:

Access time: 1141666750
Modification time: 1135897503
Device number: 0

程序3:

<?php 
$test = stat('gfg.txt'); 
  
//changing access time to 5 hours in the past 
$access_time = $stat['atime'] + 18000; 
  
//using touch() function to change the access time 
if (touch($test, time(), $access_time))  
{ 
   echo 'Access time changed to 5 hours in the past!'; 
}  
else 
{ 
   echo 'Access time could not be changed.'; 
} 
  
?>

輸出:

Access time changed to 5 hours in the past!

參考:
http://php.net/manual/en/function.stat.php



相關用法


注:本文由純淨天空篩選整理自Shubrodeep Banerjee大神的英文原創作品 PHP | stat() function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。