PHP | stat( ) function
Last Updated :
11 Jul, 2025
Improve
The stat() function in PHP is an inbuilt function which is used to return information of a file. The stat(0) function returns statistics of a file which is an array with the following elements :
php
Output:
php
Output:
php
Output:
- [0] or [dev] - Device number
- [1] or [ino] - Inode number
- [2] or [mode] - Inode protection mode
- [3] or [nlink] - Number of links
- [4] or [uid] - User ID of owner
- [5] or [gid] - Group ID of owner
- [6] or [rdev] - Inode device type
- [7] or [size] - Size in bytes
- [8] or [atime] - Last access (as Unix timestamp)
- [9] or [mtime] - Last modified (as Unix timestamp)
- [10] or [ctime] - Last inode change (as Unix timestamp)
- [11] or [blksize] - Blocksize of filesystem IO
- [12] or [blocks] - Number of blocks allocated
stat(filename)Parameters Used: The stat() function in PHP accepts one parameter.
- filename : It specifies the filename of the file whose statistics you want to know.
- The results of the stat() function differs from server to server.
- The result of the stat() function are cached and therefore the clearstatcache() function should be used to clear the cache.
- The stat() function generates an E_WARNING on failure.
- On Windows platforms the groupid of owner, userid of owner and inode number are always 0.
- For files which are larger than 2GB some filesystem functions may return unexpected results since PHP's integer type is signed and many platforms use 32bit integers.
Input : $test = stat('gfg.txt'); echo 'Access time: ' .$test['atime']; echo 'Below programs illustrate the stat() function. Suppose there is a file named "gfg.txt" Program 1
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!
<?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: 0Program 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: 0Program 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!Reference: https://www.php.net/manual/en/function.stat.php